-- SaffronScopeImpl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by hederman.pa at August 17, 1987 6:59:37 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG5Def, SaffronAG4Def, ThreeC4Support, SaffronBaseDef, SaffronATDef; SaffronScopeImpl: CEDAR PROGRAM IMPORTS ThreeC4Support, SaffronBaseDef, SaffronATDef EXPORTS SaffronAG5Def, SaffronAG4Def= BEGIN OPEN SaffronAG5Def, SaffronAG4Def, ThreeC4Support, SaffronBaseDef, SaffronATDef; ScopeProdMakeContextTree1: PUBLIC PROC[ref: REF ANY, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: ScopeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ScopeProdData _ NARROW[tree.data]; BEGIN decListContextTree: ContextTreeNode; thisScopeContextTree: ContextTreeNode; newRib: ContextRibNode; thisScopeLocalContext: LocalContextNode; localContext: LocalContextNode; localContext _ CreateEmptyContext[rib]; thisScopeLocalContext _ treeData.OptDecList.procs.UpdateLocalContext[treeData.OptDecList, localContext, paintRecords]; newRib _ FreezeLocalContext[thisScopeLocalContext]; thisScopeContextTree _ EmptyContextTree[newRib]; decListContextTree _ treeData.OptDecList.procs.HangContextsFromContextTree[treeData.OptDecList, thisScopeContextTree, newRib, paintRecords]; temp0 _ treeData.StatementList.procs.HangContextsFromContextTree[treeData.StatementList, decListContextTree, newRib, paintRecords]; END; END END; ScopeProdMakeContextTree: PUBLIC PROC[ref: REF ANY, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: ScopeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ScopeProdData _ NARROW[tree.data]; BEGIN scopePTree: ScopePTreeNode; scopePTree _ ScopePTreeVal[tree]; temp0 _ treeData.BindList.procs.MakeBindListContextTreeWithScope[treeData.BindList, scopePTree, rib, paintRecords]; END; END END; BindListemptyProdUpdateLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: BindListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContext[localContext]; END END; BindListemptyProdMakeBindListContextTreeWithScope: PUBLIC PROC[ref: REF ANY, scopePTree: ScopePTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: BindListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN scope: ScopeNode; scope _ ScopeVal[scopePTree]; temp0 _ scope.procs.MakeContextTree1[scope, rib, paintRecords]; END; END END; BindListemptyProdMakeBindListContextTreeWithDefBody: PUBLIC PROC[ref: REF ANY, defBodyPTree: DefBodyPTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: BindListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN defBody: DefBodyNode; defBody _ DefBodyVal[defBodyPTree]; temp0 _ defBody.procs.MakeContextTree1[defBody, rib, paintRecords]; END; END END; BindListmoreProdUpdateLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: BindListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BindListmoreProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; localContext1 _ treeData.BindList.procs.UpdateLocalContext[treeData.BindList, localContext, paintRecords]; temp0 _ treeData.BindItem.procs.UpdateLocalContext[treeData.BindItem, localContext1, paintRecords]; END; END END; BindListmoreProdMakeBindListContextTreeWithScope: PUBLIC PROC[ref: REF ANY, scopePTree: ScopePTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: BindListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BindListmoreProdData _ NARROW[tree.data]; BEGIN contextTree2: ContextTreeNode; scope: ScopeNode; rib2: ContextRibNode; bindListsLocalContext: LocalContextNode; localContext: LocalContextNode; localContext _ CreateEmptyContext[rib]; bindListsLocalContext _ tree.procs.UpdateLocalContext[tree, localContext, paintRecords]; rib2 _ FreezeLocalContext[bindListsLocalContext]; scope _ ScopeVal[scopePTree]; contextTree2 _ scope.procs.MakeContextTree1[scope, rib2, paintRecords]; temp0 _ AddSubContextTree[EmptyContextTree[rib2], contextTree2]; END; END END; BindListmoreProdMakeBindListContextTreeWithDefBody: PUBLIC PROC[ref: REF ANY, defBodyPTree: DefBodyPTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: BindListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BindListmoreProdData _ NARROW[tree.data]; BEGIN contextTree2: ContextTreeNode; defBody: DefBodyNode; rib2: ContextRibNode; bindListsLocalContext: LocalContextNode; localContext: LocalContextNode; localContext _ CreateEmptyContext[rib]; bindListsLocalContext _ tree.procs.UpdateLocalContext[tree, localContext, paintRecords]; rib2 _ FreezeLocalContext[bindListsLocalContext]; defBody _ DefBodyVal[defBodyPTree]; contextTree2 _ defBody.procs.MakeContextTree1[defBody, rib2, paintRecords]; temp0 _ AddSubContextTree[EmptyContextTree[rib2], contextTree2]; END; END END; BindItemnamedProdUpdateLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: BindItemNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BindItemnamedProdData _ NARROW[tree.data]; BEGIN interfaceTgn: TypeGraphNodeNode; interfaceTgn _ FindLocallyVisibleTGN[localContext, treeData.Exp.procs.IdVal[treeData.Exp]]; temp0 _ RenameInterface[localContext, treeData.Id, interfaceTgn]; END; END END; BindItemunnamedProdUpdateLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: BindItemNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BindItemunnamedProdData _ NARROW[tree.data]; BEGIN interfaceTgn: TypeGraphNodeNode; interfaceTgn _ FindLocallyVisibleTGN[localContext, treeData.Exp.procs.IdVal[treeData.Exp]]; temp0 _ OpenInterface[localContext, interfaceTgn]; END; END END; OptDecListabsentProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: OptDecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; OptDecListabsentProdUpdateLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: OptDecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContext[localContext]; END END; OptDecListpresentProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: OptDecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: OptDecListpresentProdData _ NARROW[tree.data]; temp0 _ treeData.DecList.procs.HangContextsFromContextTree[treeData.DecList, contextTree, rib, paintRecords]; END END; OptDecListpresentProdUpdateLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: OptDecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: OptDecListpresentProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; localContext1 _ treeData.DecList.procs.PutNewNamesInLocalContext[treeData.DecList, localContext]; temp0 _ treeData.DecList.procs.FillInLocalContext[treeData.DecList, localContext1, paintRecords]; END; END END; DecListmanyProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: DecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DecListmanyProdData _ NARROW[tree.data]; BEGIN contextTree1: ContextTreeNode; contextTree1 _ treeData.DecListhead.procs.HangContextsFromContextTree[treeData.DecListhead, contextTree, rib, paintRecords]; temp0 _ treeData.DecListtail.procs.HangContextsFromContextTree[treeData.DecListtail, contextTree1, rib, paintRecords]; END; END END; DecListmanyProdFillInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: DecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DecListmanyProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; localContext1 _ treeData.DecListhead.procs.FillInLocalContext[treeData.DecListhead, localContext, paintRecords]; temp0 _ treeData.DecListtail.procs.FillInLocalContext[treeData.DecListtail, localContext1, paintRecords]; END; END END; DecListmanyProdPutNewNamesInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode] = BEGIN tree: DecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DecListmanyProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; localContext1 _ treeData.DecListhead.procs.PutNewNamesInLocalContext[treeData.DecListhead, localContext]; temp0 _ treeData.DecListtail.procs.PutNewNamesInLocalContext[treeData.DecListtail, localContext1]; END; END END; DecListmanyProdUpdateLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: DecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DecListmanyProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; localContext1 _ tree.procs.PutNewNamesInLocalContext[tree, localContext]; temp0 _ tree.procs.FillInLocalContext[tree, localContext1, paintRecords]; END; END END; DecListoneProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: DecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DecListoneProdData _ NARROW[tree.data]; temp0 _ treeData.Declaration.procs.HangContextsFromContextTree[treeData.Declaration, contextTree, rib, paintRecords]; END END; DecListoneProdFillInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: DecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DecListoneProdData _ NARROW[tree.data]; temp0 _ treeData.Declaration.procs.FillInLocalContext[treeData.Declaration, localContext, paintRecords]; END END; DecListoneProdPutNewNamesInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode] = BEGIN tree: DecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DecListoneProdData _ NARROW[tree.data]; temp0 _ treeData.Declaration.procs.PutNewNamesInLocalContext[treeData.Declaration, localContext]; END END; DecListoneProdUpdateLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: DecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DecListoneProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; localContext1 _ tree.procs.PutNewNamesInLocalContext[tree, localContext]; temp0 _ tree.procs.FillInLocalContext[tree, localContext1, paintRecords]; END; END END; DeclarationopaquetypeProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationopaquetypeProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; DeclarationopaquetypeProdFillInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationopaquetypeProdData _ NARROW[tree.data]; BEGIN localContext2: LocalContextNode; tgn: TypeGraphNodeNode; localContext1: LocalContextNode; paint: PaintNode; sizeExp: ExpPTreeNode; sizeExp _ treeData.OptSize.procs.GetExpVal[treeData.OptSize]; [localContext1, paint] _ GetUniquePaint[localContext]; [localContext2, tgn] _ CreateOpaqueTGN[localContext1, paint, sizeExp]; temp0 _ treeData.IdentList.procs.RecAddArcsfromLVTGNtoTGN[treeData.IdentList, localContext2, NullAccessVal[], tgn, NullDefaultVal[]]; END; END END; DeclarationopaquetypeProdPutNewNamesInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationopaquetypeProdData _ NARROW[tree.data]; temp0 _ treeData.IdentList.procs.PutNewNamesInLocalContext1[treeData.IdentList, localContext, treeData.Access.procs.GetAccessVal[treeData.Access]]; END END; DeclarationtypeProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationtypeProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; DeclarationtypeProdFillInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationtypeProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; tgn: TypeGraphNodeNode; defaultExp: DefaultExpNode; defaultExp _ treeData.Default.procs.GetDefaultExpVal[treeData.Default]; [localContext1, tgn] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords]; temp0 _ treeData.IdentList.procs.RecAddArcsfromLVTGNtoTGN[treeData.IdentList, localContext1, treeData.Accesstype.procs.GetAccessVal[treeData.Accesstype], tgn, defaultExp]; END; END END; DeclarationtypeProdPutNewNamesInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationtypeProdData _ NARROW[tree.data]; temp0 _ treeData.IdentList.procs.PutNewNamesInLocalContext1[treeData.IdentList, localContext, treeData.Accessid.procs.GetAccessVal[treeData.Accessid]]; END END; DeclarationvalueProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationvalueProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; DeclarationvalueProdFillInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN] RETURNS[temp0: LocalContextNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationvalueProdData _ NARROW[tree.data]; temp0 _ FakeDamageContext[localContext]; END END; DeclarationvalueProdPutNewNamesInLocalContext: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode] = BEGIN tree: DeclarationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: DeclarationvalueProdData _ NARROW[tree.data]; temp0 _ FakeDamageContext[localContext]; END END; OptSizeabsentProdGetExpVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ExpPTreeNode] = BEGIN tree: OptSizeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ NullExpPTree[]; END END; OptSizepresentProdGetExpVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ExpPTreeNode] = BEGIN tree: OptSizeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: OptSizepresentProdData _ NARROW[tree.data]; temp0 _ ExpPTreeVal[treeData.Exp]; END END; StatementListemptyProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementListmoreProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementListmoreProdData _ NARROW[tree.data]; BEGIN contextTree1: ContextTreeNode; contextTree1 _ treeData.StatementList.procs.HangContextsFromContextTree[treeData.StatementList, contextTree, rib, paintRecords]; temp0 _ treeData.Statement.procs.HangContextsFromContextTree[treeData.Statement, contextTree1, rib, paintRecords]; END; END END; StatementifthenProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementifthenProdData _ NARROW[tree.data]; temp0 _ treeData.Statement.procs.HangContextsFromContextTree[treeData.Statement, contextTree, rib, paintRecords]; END END; StatementifthenelseProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementifthenelseProdData _ NARROW[tree.data]; BEGIN contextTree1: ContextTreeNode; contextTree1 _ treeData.Statementthenpart.procs.HangContextsFromContextTree[treeData.Statementthenpart, contextTree, rib, paintRecords]; temp0 _ treeData.Statementelsepart.procs.HangContextsFromContextTree[treeData.Statementelsepart, contextTree1, rib, paintRecords]; END; END END; StatementselectProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementselectProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementexpProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementexpProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementassignProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementassignProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementmultiassignProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementmultiassignProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementblockProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementblockProdData _ NARROW[tree.data]; temp0 _ treeData.Block.procs.HangContextsFromContextTree[treeData.Block, contextTree, rib, paintRecords]; END END; StatementloopcontrolProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementloopcontrolProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementexitProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementloopProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementgotoProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementgotoProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementreturnProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementreturnProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementtransferProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementtransferProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementfreeProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementfreeProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementwaitProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementwaitProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementerrorProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementstopProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementnullProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementresumeProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementresumeProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementrejectProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementcontinueProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementretryProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementgetstateProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementgetstateProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; StatementsetstateProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: StatementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: StatementsetstateProdData _ NARROW[tree.data]; temp0 _ FakeDamageContextTree[contextTree]; END END; BlockProdHangContextsFromContextTree: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, rib: ContextRibNode, paintRecords: BOOLEAN] RETURNS[temp0: ContextTreeNode] = BEGIN tree: BlockNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BlockProdData _ NARROW[tree.data]; BEGIN subContextTree: ContextTreeNode; subContextTree _ treeData.Scope.procs.MakeContextTree[treeData.Scope, rib, paintRecords]; temp0 _ AddSubContextTree[contextTree, subContextTree]; END; END END; END..