-- SaffronMakeTypeImpl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at July 31, 1988 8:48:12 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG7Def, SaffronAG2Def, SaffronAG8Def, SaffronAG6Def, SaffronAG9Def, SaffronAG1Def, SaffronGenericDef, Rope, ThreeC4Support, SaffronBaseDef, SaffronATDef; SaffronMakeTypeImpl: CEDAR PROGRAM IMPORTS ThreeC4Support, SaffronBaseDef, SaffronATDef EXPORTS SaffronAG7Def, SaffronAG2Def, SaffronAG8Def, SaffronAG6Def, SaffronAG9Def, SaffronAG1Def= BEGIN OPEN SaffronAG7Def, SaffronAG2Def, SaffronAG8Def, SaffronAG6Def, SaffronAG9Def, SaffronAG1Def, SaffronGenericDef, Rope, ThreeC4Support, SaffronBaseDef, SaffronATDef; TopmodulepProdExplore: PUBLIC PROC[ref: REF ANY, fileName: ROPE, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: EnvironmentNode, temp1: CompilerStateNode] = BEGIN tree: TopNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TopmodulepProdData _ NARROW[tree.data]; [temp0, temp1] _ treeData.ModuleP.procs.Explore[treeData.ModuleP, fileName, env, cs]; END END; TopmodulepProdDoTop: PUBLIC PROC[ref: REF ANY, fileName: ROPE, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: EnvironmentNode, temp1: CompilerStateNode] = BEGIN tree: TopNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TopmodulepProdData _ NARROW[tree.data]; [temp0, temp1] _ treeData.ModuleP.procs.MakeEnvironment[treeData.ModuleP, fileName, env, cs]; END END; ModulePimplProdExplore: PUBLIC PROC[ref: REF ANY, fileName: ROPE, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: EnvironmentNode, temp1: CompilerStateNode] = BEGIN tree: ModulePNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ModulePimplProdData _ NARROW[tree.data]; BEGIN env2: EnvironmentNode; contextTree: ContextTreeNode; rootContextRib: ContextRibNode; cs2: CompilerStateNode; cs1: CompilerStateNode; cs1 _ treeData.ProgHead.procs.AddModulePropertiesToCompilerState[treeData.ProgHead, cs]; [rootContextRib, cs2] _ SetUpRootContext[cs1]; contextTree _ EmptyContextTree[rootContextRib]; env2 _ AddCompiledFileToEnvironment[env, fileName, contextTree]; temp1 _ cs2; temp0 _ env2; END; END END; ModulePimplProdMakeContextTree: PUBLIC PROC[ref: REF ANY, parentRib: ContextRibNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: ContextTreeNode] = BEGIN tree: ModulePNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ModulePimplProdData _ NARROW[tree.data]; temp0 _ EmptyContextTree[parentRib]; END END; ModulePimplProdMakeEnvironment: PUBLIC PROC[ref: REF ANY, fileName: ROPE, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: EnvironmentNode, temp1: CompilerStateNode] = BEGIN tree: ModulePNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ModulePimplProdData _ NARROW[tree.data]; BEGIN env2: EnvironmentNode; contextTree: ContextTreeNode; rootContextRib: ContextRibNode; cs2: CompilerStateNode; cs1: CompilerStateNode; cs1 _ treeData.ProgHead.procs.AddModulePropertiesToCompilerState[treeData.ProgHead, cs]; [rootContextRib, cs2] _ SetUpRootContext[cs1]; contextTree _ EmptyContextTree[rootContextRib]; env2 _ AddCompiledFileToEnvironment[env, fileName, contextTree]; temp1 _ cs2; temp0 _ env2; END; END END; ModulePdefProdExplore: PUBLIC PROC[ref: REF ANY, fileName: ROPE, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: EnvironmentNode, temp1: CompilerStateNode] = BEGIN tree: ModulePNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ModulePdefProdData _ NARROW[tree.data]; BEGIN env2: EnvironmentNode; ct: ContextTreeNode; localContext: LocalContextNode; env1: EnvironmentNode; cs3: CompilerStateNode; rootContext: LocalContextNode; rootContextRib: ContextRibNode; cs2: CompilerStateNode; cs1: CompilerStateNode; cs1 _ treeData.DefHead.procs.AddModulePropertiesToCompilerState[treeData.DefHead, cs]; [rootContextRib, cs2] _ SetUpRootContext[cs1]; rootContext _ CreateEmptyContext[rootContextRib]; [localContext, env1, cs3] _ treeData.Directory.procs.ExploreDirectoryClause[treeData.Directory, rootContext, env, cs2]; ct _ EmptyContextTree[rootContextRib]; env2 _ AddCompiledFileToEnvironment[env1, fileName, ct]; temp1 _ cs3; temp0 _ env2; END; END END; ModulePdefProdMakeContextTree: PUBLIC PROC[ref: REF ANY, parentRib: ContextRibNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: ContextTreeNode] = BEGIN tree: ModulePNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ModulePdefProdData _ NARROW[tree.data]; temp0 _ EmptyContextTree[parentRib]; END END; ModulePdefProdMakeEnvironment: PUBLIC PROC[ref: REF ANY, fileName: ROPE, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: EnvironmentNode, temp1: CompilerStateNode] = BEGIN tree: ModulePNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ModulePdefProdData _ NARROW[tree.data]; BEGIN env2: EnvironmentNode; contextTree: ContextTreeNode; contextRib: ContextRibNode; localContext: LocalContextNode; env1: EnvironmentNode; cs3: CompilerStateNode; rootContext: LocalContextNode; rootContextRib: ContextRibNode; cs2: CompilerStateNode; cs1: CompilerStateNode; cs1 _ treeData.DefHead.procs.AddModulePropertiesToCompilerState[treeData.DefHead, cs]; [rootContextRib, cs2] _ SetUpRootContext[cs1]; rootContext _ CreateEmptyContext[rootContextRib]; [localContext, env1, cs3] _ treeData.Directory.procs.ProcessDirectoryClause[treeData.Directory, rootContext, env, cs2]; contextRib _ FreezeLocalContext[AnalyzeDependencies[localContext]]; contextTree _ treeData.DefBody.procs.MakeContextTree[treeData.DefBody, contextRib, True[], cs3]; env2 _ AddCompiledFileToEnvironment[env1, fileName, contextTree]; temp1 _ cs3; temp0 _ env2; END; END END; DirectoryemptyProdExploreDirectoryClause: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: EnvironmentNode, temp2: CompilerStateNode] = BEGIN tree: DirectoryNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp2 _ FakeDamageCompilerState[cs]; temp1 _ FakeDamageEnvironment[env]; temp0 _ FakeDamageContext[localContext]; END END; DirectoryemptyProdProcessDirectoryClause: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: EnvironmentNode, temp2: CompilerStateNode] = BEGIN tree: DirectoryNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp2 _ FakeDamageCompilerState[cs]; temp1 _ FakeDamageEnvironment[env]; temp0 _ FakeDamageContext[localContext]; END END; DirectorymoreProdExploreDirectoryClause: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: EnvironmentNode, temp2: CompilerStateNode] = BEGIN tree: DirectoryNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DirectorymoreProdData _ NARROW[tree.data]; temp3: LocalContextNode; temp4: EnvironmentNode; temp5: CompilerStateNode; [temp3, temp4, temp5] _ treeData.Directory.procs.ExploreDirectoryClause[treeData.Directory, localContext, env, cs]; [temp0, temp1, temp2] _ treeData.IncludeItem.procs.ExploreDirectoryItem[treeData.IncludeItem, temp3, temp4, temp5]; END END; DirectorymoreProdProcessDirectoryClause: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: EnvironmentNode, temp2: CompilerStateNode] = BEGIN tree: DirectoryNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DirectorymoreProdData _ NARROW[tree.data]; temp3: LocalContextNode; temp4: EnvironmentNode; temp5: CompilerStateNode; [temp3, temp4, temp5] _ treeData.Directory.procs.ProcessDirectoryClause[treeData.Directory, localContext, env, cs]; [temp0, temp1, temp2] _ treeData.IncludeItem.procs.ProcessDirectoryItem[treeData.IncludeItem, temp3, temp4, temp5]; END END; IncludeItemProdExploreDirectoryItem: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: EnvironmentNode, temp2: CompilerStateNode] = BEGIN tree: IncludeItemNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IncludeItemProdData _ NARROW[tree.data]; BEGIN tgn1: TypeGraphNodeNode; lc1: LocalContextNode; tgn: TypeGraphNodeNode; position: PositionValNode; access: AccessValNode; interface: TypeGraphNodeNode; default: DefaultExpNode; env1: EnvironmentNode; cs1: CompilerStateNode; fileName: ROPE; fileName _ treeData.IdOrString.procs.RopeFromIdOrString[treeData.IdOrString]; IF IsCompiledFileInEnv[env, fileName] THEN {cs1 _ FakeDamageCompilerState[cs]; env1 _ FakeDamageEnvironment[env]; } ELSE {BEGIN defFile: ModulePNode; defFile _ ModulePVal[ReadDefFile[fileName]]; [env1, cs1] _ defFile.procs.Explore[defFile, fileName, env, cs]; END; }; default _ NullDefaultVal[]; interface _ LookupInterfaceInEnv[env1, fileName, treeData.IdmoduleName]; access _ AccessValConst["public"]; position _ NullPosition[]; [lc1, tgn] _ CreateNamedTGN[lc, treeData.Idlocal, position, access, interface, default]; tgn1 _ treeData.Using.procs.RestrictNamedTGN[treeData.Using, tgn]; temp2 _ cs1; temp1 _ env1; temp0 _ lc1; END; END END; IncludeItemProdProcessDirectoryItem: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, env: EnvironmentNode, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: EnvironmentNode, temp2: CompilerStateNode] = BEGIN tree: IncludeItemNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IncludeItemProdData _ NARROW[tree.data]; BEGIN tgn1: TypeGraphNodeNode; lc1: LocalContextNode; tgn: TypeGraphNodeNode; position: PositionValNode; access: AccessValNode; interface: TypeGraphNodeNode; default: DefaultExpNode; env1: EnvironmentNode; cs1: CompilerStateNode; fileName: ROPE; fileName _ treeData.IdOrString.procs.RopeFromIdOrString[treeData.IdOrString]; IF IsCompiledFileInEnv[env, fileName] THEN {cs1 _ FakeDamageCompilerState[cs]; env1 _ FakeDamageEnvironment[env]; } ELSE {BEGIN defFile: ModulePNode; defFile _ ModulePVal[ReadDefFile[fileName]]; [env1, cs1] _ defFile.procs.MakeEnvironment[defFile, fileName, env, cs]; END; }; default _ NullDefaultVal[]; interface _ LookupInterfaceInEnv[env1, fileName, treeData.IdmoduleName]; access _ AccessValConst["public"]; position _ NullPosition[]; [lc1, tgn] _ CreateNamedTGN[lc, treeData.Idlocal, position, access, interface, default]; tgn1 _ treeData.Using.procs.RestrictNamedTGN[treeData.Using, tgn]; temp2 _ cs1; temp1 _ env1; temp0 _ lc1; END; END END; UsingrestrictedProdRestrictNamedTGN: PUBLIC PROC[ref: REF ANY, namedTGN: TypeGraphNodeNode] RETURNS[temp0: TypeGraphNodeNode] = BEGIN tree: UsingNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: UsingrestrictedProdData _ NARROW[tree.data]; temp0 _ treeData.IdList.procs.AddIdsToRestrictionList[treeData.IdList, namedTGN]; END END; UsingnothingProdRestrictNamedTGN: PUBLIC PROC[ref: REF ANY, namedTGN: TypeGraphNodeNode] RETURNS[temp0: TypeGraphNodeNode] = BEGIN tree: UsingNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageTypeGraphNode[namedTGN]; END END; UsingunrestrictedProdRestrictNamedTGN: PUBLIC PROC[ref: REF ANY, namedTGN: TypeGraphNodeNode] RETURNS[temp0: TypeGraphNodeNode] = BEGIN tree: UsingNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ AddAllIdsToRestrictionList[namedTGN]; END END; DefBodyProdMakeContextTree1: PUBLIC PROC[ref: REF ANY, rib: ContextRibNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: ContextTreeNode] = BEGIN tree: DefBodyNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DefBodyProdData _ NARROW[tree.data]; BEGIN thisScopeContextTree: ContextTreeNode; newRib: ContextRibNode; thisScopeLocalContext: LocalContextNode; localContext: LocalContextNode; localContext _ CreateEmptyContext[rib]; thisScopeLocalContext _ treeData.DecList.procs.UpdateLocalContext[treeData.DecList, localContext, paintRecords, cs]; newRib _ FreezeLocalContext[AnalyzeDependencies[thisScopeLocalContext]]; thisScopeContextTree _ EmptyContextTree[newRib]; temp0 _ treeData.DecList.procs.HangContextsFromContextTree[treeData.DecList, thisScopeContextTree, newRib, paintRecords, cs]; END; END END; DefBodyProdMakeContextTree: PUBLIC PROC[ref: REF ANY, contextRib: ContextRibNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: ContextTreeNode] = BEGIN tree: DefBodyNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DefBodyProdData _ NARROW[tree.data]; BEGIN defBodyPTree: DefBodyPTreeNode; defBodyPTree _ DefBodyPTreeVal[tree]; temp0 _ treeData.BindList.procs.MakeBindListContextTreeWithDefBody[treeData.BindList, defBodyPTree, contextRib, paintRecords, cs]; END; END END; TypeExprecordProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprecordProdData _ NARROW[tree.data]; BEGIN localContext4: LocalContextNode; newTgn: TypeGraphNodeNode; localContext3: LocalContextNode; frozenFieldList: FrozenFieldListNode; localContext2: LocalContextNode; fieldList: FieldListNode; localContext1: LocalContextNode; paint: PaintNode; machineDependent: BOOLEAN; monitored: BOOLEAN; monitored _ treeData.Monitored.procs.GetBooleanVal[treeData.Monitored]; machineDependent _ treeData.MachineDependent.procs.GetBooleanVal[treeData.MachineDependent]; IF paintRecords THEN {[localContext1, paint] _ GetUniquePaint[localContext]; } ELSE {[localContext1, paint] _ GetUnpaintedPaint[localContext]; }; [localContext2, fieldList] _ treeData.RecList.procs.MakeFieldList[treeData.RecList, localContext1, paintRecords, cs]; [localContext3, frozenFieldList] _ FreezeFieldList[localContext2, fieldList]; [localContext4, newTgn] _ CreateRecordTGN[localContext3, paint, machineDependent, monitored, frozenFieldList]; temp1 _ newTgn; temp0 _ localContext4; END; END END; TypeExpunionProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpunionProdData _ NARROW[tree.data]; BEGIN variantFlavor: VariantFlavorNode; localContext3: LocalContextNode; tagTypeTgn1: TypeGraphNodeNode; localContext2: LocalContextNode; tagTypeTgn: TypeGraphNodeNode; isStarTagType: BOOLEAN; localContext1: LocalContextNode; unionList: UnionListNode; [localContext1, unionList] _ treeData.VariantList.procs.MakeUnionList[treeData.VariantList, localContext, paintRecords, cs]; [localContext2, tagTypeTgn, isStarTagType] _ treeData.Tag.procs.MakeTagType[treeData.Tag, localContext1, paintRecords, cs]; IF isStarTagType THEN {[localContext3, tagTypeTgn1] _ treeData.VariantList.procs.MakeStarTagType[treeData.VariantList, localContext2]; } ELSE {tagTypeTgn1 _ tagTypeTgn; localContext3 _ FakeDamageContext[localContext2]; }; variantFlavor _ treeData.Tag.procs.MakeVariantFlavor[treeData.Tag, cs]; [temp0, temp1] _ CreateVariantPartTGN[localContext3, variantFlavor, tagTypeTgn1, unionList]; END; END END; TypeExpsequenceProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpsequenceProdData _ NARROW[tree.data]; BEGIN temp2: IdNode; temp3: PositionValNode; temp4: AccessValNode; packed: BOOLEAN; x: BOOLEAN; localContext2: LocalContextNode; tagTypeTgn: TypeGraphNodeNode; isStarTagType: BOOLEAN; localContext1: LocalContextNode; tgn: TypeGraphNodeNode; [localContext1, tgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs]; [localContext2, tagTypeTgn, isStarTagType] _ treeData.Tag.procs.MakeTagType[treeData.Tag, localContext1, paintRecords, cs]; IF isStarTagType THEN {x _ Error["Sequence Tag must not be a star"]; } ELSE {x _ True[]; }; packed _ treeData.Packed.procs.GetBooleanVal[treeData.Packed]; [temp2, temp3, temp4] _ treeData.Tag.procs.GetSequenceTagInfo[treeData.Tag, cs]; [temp0, temp1] _ CreateSequenceTGN[localContext2, packed, temp2, temp3, temp4, tagTypeTgn, tgn]; END; END END; TypeExpenumProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpenumProdData _ NARROW[tree.data]; BEGIN machineDependent: BOOLEAN; machineDependent _ treeData.MachineDependent.procs.GetBooleanVal[treeData.MachineDependent]; [temp0, temp1] _ treeData.ElementList.procs.MakeElementList[treeData.ElementList, localContext, machineDependent]; END; END END; TypeExprefProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprefProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; referentTgn: TypeGraphNodeNode; readOnly: BOOLEAN; readOnly _ treeData.ReadOnly.procs.GetBooleanVal[treeData.ReadOnly]; [localContext1, referentTgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs]; [temp0, temp1] _ CreateRefTGN[localContext1, readOnly, referentTgn]; END; END END; TypeExprefanyProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprefanyProdData _ NARROW[tree.data]; BEGIN topTgn: TypeGraphNodeNode; localContext1: LocalContextNode; readOnly: BOOLEAN; readOnly _ treeData.ReadOnly.procs.GetBooleanVal[treeData.ReadOnly]; localContext1 _ FakeDamageContext[localContext]; topTgn _ GetTop[cs]; [temp0, temp1] _ CreateRefTGN[localContext1, readOnly, topTgn]; END; END END; TypeExprefunspecifiedProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN topTgn: TypeGraphNodeNode; localContext1: LocalContextNode; readOnly: BOOLEAN; readOnly _ False[]; localContext1 _ FakeDamageContext[localContext]; topTgn _ GetTop[cs]; [temp0, temp1] _ CreateRefTGN[localContext1, readOnly, topTgn]; END; END END; TypeExptypeidProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptypeidProdData _ NARROW[tree.data]; [temp0, temp1] _ treeData.TypeId.procs.MakeType[treeData.TypeId, localContext, paintRecords, cs]; END END; TypeExpsubrangeProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpsubrangeProdData _ NARROW[tree.data]; [temp0, temp1] _ treeData.Subrange.procs.MakeType[treeData.Subrange, localContext, paintRecords, cs]; END END; TypeExppointerProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExppointerProdData _ NARROW[tree.data]; BEGIN ordered: BOOLEAN; base: BOOLEAN; localContext1: LocalContextNode; bounds: BoundsValNode; readOnly: BOOLEAN; tgn: TypeGraphNodeNode; [localContext1, bounds, readOnly, tgn] _ treeData.PointerType.procs.GetPointerTypeInfo[treeData.PointerType, localContext, paintRecords, cs]; base _ treeData.Base.procs.GetBooleanVal[treeData.Base]; ordered _ treeData.Ordered.procs.GetBooleanVal[treeData.Ordered]; [temp0, temp1] _ CreatePointerTGN[localContext1, ordered, base, bounds, readOnly, tgn]; END; END END; TypeExpvarProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpvarProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; [localContext1, tgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs]; [temp0, temp1] _ CreateVarTGN[localContext1, tgn]; END; END END; TypeExplistProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExplistProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; itemTgn: TypeGraphNodeNode; readOnly: BOOLEAN; readOnly _ treeData.ReadOnly.procs.GetBooleanVal[treeData.ReadOnly]; [localContext1, itemTgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs]; [temp0, temp1] _ CreateListTGN[localContext1, readOnly, itemTgn]; END; END END; TypeExparrayProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExparrayProdData _ NARROW[tree.data]; BEGIN localContext2: LocalContextNode; itemTgn: TypeGraphNodeNode; localContext1: LocalContextNode; indexTgn: TypeGraphNodeNode; packed: BOOLEAN; packed _ treeData.Packed.procs.GetBooleanVal[treeData.Packed]; [localContext1, indexTgn] _ treeData.OptType.procs.MakeType[treeData.OptType, localContext, paintRecords, cs]; [localContext2, itemTgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext1, paintRecords, cs]; [temp0, temp1] _ CreateArrayTGN[localContext2, packed, indexTgn, itemTgn]; END; END END; TypeExpdescriptorProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpdescriptorProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; readOnly: BOOLEAN; readOnly _ treeData.ReadOnly.procs.GetBooleanVal[treeData.ReadOnly]; [localContext1, tgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs]; [temp0, temp1] _ CreateDescriptorTGN[localContext1, readOnly, tgn]; END; END END; TypeExptransferProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptransferProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; fflInput: FrozenFieldListNode; fflOutput: FrozenFieldListNode; transferMode: ROPE; safe: BOOLEAN; safe _ treeData.Safe.procs.GetBooleanVal[treeData.Safe]; transferMode _ treeData.TransferMode.procs.MakeTransferMode[treeData.TransferMode]; [localContext1, fflInput, fflOutput] _ treeData.Arguments.procs.MakeArgumentLists[treeData.Arguments, localContext, paintRecords, cs]; [temp0, temp1] _ CreateTransferTGN[localContext1, safe, transferMode, fflInput, fflOutput]; END; END END; TypeExprelativeProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprelativeProdData _ NARROW[tree.data]; BEGIN localContext2: LocalContextNode; tgn: TypeGraphNodeNode; localContext1: LocalContextNode; baseTgn: TypeGraphNodeNode; [localContext1, baseTgn] _ treeData.TypeId.procs.LookupTypeId[treeData.TypeId, localContext]; [localContext2, tgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext1, paintRecords, cs]; [temp0, temp1] _ CreateRelativeTGN[localContext2, baseTgn, tgn]; END; END END; TypeExpzoneProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpzoneProdData _ NARROW[tree.data]; [temp0, temp1] _ CreateZoneTGN[localContext, treeData.Uncounted.procs.GetBooleanVal[treeData.Uncounted]]; END END; TypeExplongProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExplongProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; [localContext1, tgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs]; [temp0, temp1] _ CreateLongTGN[localContext1, tgn]; END; END END; TypeExpframeProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpframeProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; temp1 _ FindFrameTGN[localContext1, treeData.Id]; temp0 _ localContext1; END; END END; TypeExppaintedProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExppaintedProdData _ NARROW[tree.data]; BEGIN n: TypeGraphNodeNode; c: LocalContextNode; x: BOOLEAN; x _ Error[" Unimplemented Construct"]; c _ FakeDamageContext[localContext]; n _ GetBottom[cs]; temp1 _ n; temp0 _ c; END; END END; TypeExptypeapplyProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptypeapplyProdData _ NARROW[tree.data]; [temp0, temp1] _ treeData.TypeApply.procs.MakeType[treeData.TypeApply, localContext, paintRecords, cs]; END END; TypeApplyoneProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeApplyNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeApplyoneProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; [localContext1, tgn] _ treeData.TypeId.procs.LookupTypeId[treeData.TypeId, localContext]; [temp0, temp1] _ CreateSpecianatedTGNUsingExp[localContext1, tgn, MakeUnparsedValue[treeData.Exp]]; END; END END; TypeApplymorelengthsProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeApplyNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeApplymorelengthsProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; [localContext1, tgn] _ treeData.TypeApply.procs.MakeType[treeData.TypeApply, localContext, paintRecords, cs]; [temp0, temp1] _ CreateSpecianatedTGNUsingExp[localContext1, tgn, MakeUnparsedValue[treeData.Exp]]; END; END END; TypeApplymoreidsProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeApplyNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeApplymoreidsProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; [localContext1, tgn] _ treeData.TypeApply.procs.MakeType[treeData.TypeApply, localContext, paintRecords, cs]; [temp0, temp1] _ CreateSpecianatedTGNUsingId[localContext1, tgn, treeData.Id]; END; END END; TypeIdidProdLookupTypeId: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdidProdData _ NARROW[tree.data]; [temp0, temp1] _ CreateIdentifierTGN[localContext, treeData.Id]; END END; TypeIdidProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdidProdData _ NARROW[tree.data]; [temp0, temp1] _ CreateIdentifierTGN[localContext, treeData.Id]; END END; TypeIdqualifierProdLookupTypeId: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdqualifierProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; [localContext1, tgn] _ treeData.TypeId.procs.LookupTypeId[treeData.TypeId, localContext]; [temp0, temp1] _ CreateSpecianatedTGNUsingId[localContext1, tgn, treeData.Id]; END; END END; TypeIdqualifierProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdqualifierProdData _ NARROW[tree.data]; [temp0, temp1] _ tree.procs.LookupTypeId[tree, localContext]; END END; OptTypeabsentProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: OptTypeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; tgn _ GetBottom[cs]; localContext1 _ FakeDamageContext[localContext]; temp1 _ tgn; temp0 _ localContext1; END; END END; OptTypepresentProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: OptTypeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: OptTypepresentProdData _ NARROW[tree.data]; [temp0, temp1] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs]; END END; SubrangenamedProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: SubrangeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: SubrangenamedProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; bounds: BoundsValNode; bounds _ treeData.Interval.procs.GetBoundsVal[treeData.Interval]; [localContext1, tgn] _ treeData.TypeId.procs.LookupTypeId[treeData.TypeId, localContext]; [temp0, temp1] _ CreateSubrangeTGN[localContext1, tgn, bounds]; END; END END; SubrangeunnamedProdMakeType: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] = BEGIN tree: SubrangeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: SubrangeunnamedProdData _ NARROW[tree.data]; BEGIN tgn: TypeGraphNodeNode; bounds: BoundsValNode; bounds _ treeData.Interval.procs.GetBoundsVal[treeData.Interval]; tgn _ GetBottom[cs]; [temp0, temp1] _ CreateSubrangeTGN[localContext, tgn, bounds]; END; END END; IntervalccProdGetBoundsVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BoundsValNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalccProdData _ NARROW[tree.data]; temp1: ValueNode; temp2: ValueNode; [temp1, temp2] _ treeData.Bounds.procs.GetLowerAndUpper[treeData.Bounds]; temp0 _ BoundsValFun["[", temp1, temp2, "]"]; END END; IntervalcoProdGetBoundsVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BoundsValNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalcoProdData _ NARROW[tree.data]; temp1: ValueNode; temp2: ValueNode; [temp1, temp2] _ treeData.Bounds.procs.GetLowerAndUpper[treeData.Bounds]; temp0 _ BoundsValFun["[", temp1, temp2, ")"]; END END; IntervalocProdGetBoundsVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BoundsValNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalocProdData _ NARROW[tree.data]; temp1: ValueNode; temp2: ValueNode; [temp1, temp2] _ treeData.Bounds.procs.GetLowerAndUpper[treeData.Bounds]; temp0 _ BoundsValFun["(", temp1, temp2, "]"]; END END; IntervalooProdGetBoundsVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BoundsValNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalooProdData _ NARROW[tree.data]; temp1: ValueNode; temp2: ValueNode; [temp1, temp2] _ treeData.Bounds.procs.GetLowerAndUpper[treeData.Bounds]; temp0 _ BoundsValFun["(", temp1, temp2, ")"]; END END; BoundsProdGetLowerAndUpper: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode, temp1: ValueNode] = BEGIN tree: BoundsNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BoundsProdData _ NARROW[tree.data]; temp1 _ MakeUnparsedValue[treeData.Expupper]; temp0 _ MakeUnparsedValue[treeData.Explower]; END END; PointerTypeunspecifiedProdGetPointerTypeInfo: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: BoundsValNode, temp2: BOOLEAN, temp3: TypeGraphNodeNode] = BEGIN tree: PointerTypeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: PointerTypeunspecifiedProdData _ NARROW[tree.data]; BEGIN bounds: BoundsValNode; readOnly: BOOLEAN; tgn: TypeGraphNodeNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; tgn _ GetBottom[cs]; readOnly _ False[]; bounds _ treeData.OptInterval.procs.GetBoundsVal[treeData.OptInterval]; temp3 _ tgn; temp2 _ readOnly; temp1 _ bounds; temp0 _ localContext1; END; END END; PointerTypespecifiedProdGetPointerTypeInfo: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: BoundsValNode, temp2: BOOLEAN, temp3: TypeGraphNodeNode] = BEGIN tree: PointerTypeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: PointerTypespecifiedProdData _ NARROW[tree.data]; BEGIN bounds: BoundsValNode; readOnly: BOOLEAN; localContext1: LocalContextNode; tgn: TypeGraphNodeNode; [localContext1, tgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs]; readOnly _ treeData.ReadOnly.procs.GetBooleanVal[treeData.ReadOnly]; bounds _ treeData.OptInterval.procs.GetBoundsVal[treeData.OptInterval]; temp3 _ tgn; temp2 _ readOnly; temp1 _ bounds; temp0 _ localContext1; END; END END; OptIntervalabsentProdGetBoundsVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BoundsValNode] = BEGIN tree: OptIntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ NullBounds[]; END END; OptIntervalpresentProdGetBoundsVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BoundsValNode] = BEGIN tree: OptIntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: OptIntervalpresentProdData _ NARROW[tree.data]; temp0 _ treeData.Interval.procs.GetBoundsVal[treeData.Interval]; END END; TransferModeprocProdMakeTransferMode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ROPE] = BEGIN tree: TransferModeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ "proc"; END END; TransferModeportProdMakeTransferMode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ROPE] = BEGIN tree: TransferModeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ "port"; END END; TransferModesignalProdMakeTransferMode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ROPE] = BEGIN tree: TransferModeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ "signal"; END END; TransferModeerrorProdMakeTransferMode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ROPE] = BEGIN tree: TransferModeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ "error"; END END; TransferModeprocessProdMakeTransferMode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ROPE] = BEGIN tree: TransferModeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ "process"; END END; TransferModeprogramProdMakeTransferMode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ROPE] = BEGIN tree: TransferModeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ "program"; END END; ArgumentsProdMakeArgumentLists: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: FrozenFieldListNode, temp2: FrozenFieldListNode] = BEGIN tree: ArgumentsNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ArgumentsProdData _ NARROW[tree.data]; BEGIN localContext2: LocalContextNode; frozenOutputList: FrozenFieldListNode; temp5: LocalContextNode; temp6: FieldListNode; localContext1: LocalContextNode; frozenInputlist: FrozenFieldListNode; temp3: LocalContextNode; temp4: FieldListNode; [temp3, temp4] _ treeData.ParameterListinput.procs.MakeFieldList[treeData.ParameterListinput, localContext, paintRecords, cs]; [localContext1, frozenInputlist] _ FreezeFieldList[temp3, temp4]; [temp5, temp6] _ treeData.ParameterListoutput.procs.MakeFieldList[treeData.ParameterListoutput, localContext1, paintRecords, cs]; [localContext2, frozenOutputList] _ FreezeFieldList[temp5, temp6]; temp2 _ frozenOutputList; temp1 _ frozenInputlist; temp0 _ localContext2; END; END END; DefaultemptyProdGetDefaultExpVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: DefaultExpNode] = BEGIN tree: DefaultNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ DefaultExpVal["", MakeDummy["Default.empty"]]; END END; DefaultgetsProdGetDefaultExpVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: DefaultExpNode] = BEGIN tree: DefaultNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ DefaultExpVal["_", MakeDummy["Default.gets"]]; END END; DefaultgetsexpProdGetDefaultExpVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: DefaultExpNode] = BEGIN tree: DefaultNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DefaultgetsexpProdData _ NARROW[tree.data]; BEGIN instance: ValueNode; instance _ MakeDummy["Default.getsexp"]; temp0 _ DefaultExpVal["_e", instance]; END; END END; DefaultgetstrashProdGetDefaultExpVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: DefaultExpNode] = BEGIN tree: DefaultNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ DefaultExpVal["_TRASH", MakeDummy["Default.getstrash"]]; END END; DefaultgetsexportrashProdGetDefaultExpVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: DefaultExpNode] = BEGIN tree: DefaultNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DefaultgetsexportrashProdData _ NARROW[tree.data]; BEGIN instance: ValueNode; instance _ MakeDummy["Default.getsexportrash"]; temp0 _ DefaultExpVal["_e|TRASH", instance]; END; END END; PackedyesProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: PackedNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; PackednoProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: PackedNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; MonitoredyesProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MonitoredNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; MonitorednoProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MonitoredNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; MachineDependentyesProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MachineDependentNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; MachineDependentnoProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MachineDependentNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; OrderedyesProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: OrderedNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; OrderednoProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: OrderedNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; BaseyesProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: BaseNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; BasenoProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: BaseNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; SafeyesProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: SafeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; SafenoProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: SafeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; SafeemptyProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: SafeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; UncountedyesProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: UncountedNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; UncountednoProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: UncountedNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; ReadOnlyyesProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: ReadOnlyNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; ReadOnlynoProdGetBooleanVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: ReadOnlyNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; END..