-- SaffronValueDependenciesImpl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 6:37:19 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG1aDef, SaffronAG1bDef, SaffronAG3Def, ThreeC4Support, SaffronBaseDef, SaffronATDef; SaffronValueDependenciesImpl: CEDAR PROGRAM IMPORTS ThreeC4Support, SaffronBaseDef EXPORTS SaffronAG1aDef, SaffronAG1bDef, SaffronAG3Def= BEGIN OPEN SaffronAG1aDef, SaffronAG1bDef, SaffronAG3Def, ThreeC4Support, SaffronBaseDef, SaffronATDef; InitializationemptyProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageDependencyGraph[dg]; END END; InitializationbindingProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationbindingProdData _ NARROW[tree.data]; temp0 _ treeData.InitialValue.procs.AddValueDependencies[treeData.InitialValue, dg, dgn]; END END; InitializationassignmentProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationassignmentProdData _ NARROW[tree.data]; temp0 _ AddRuntimeDependency[dg, dgn]; END END; InitialValuetrashProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageDependencyGraph[dg]; END END; InitialValuecodeProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageDependencyGraph[dg]; END END; InitialValueexpProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValueexpProdData _ NARROW[tree.data]; temp0 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; END END; InitialValueblockProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValueblockProdData _ NARROW[tree.data]; IF treeData.Inline.procs.IsKeywordPresent[treeData.Inline] THEN {BEGIN err: BOOLEAN; err _ Error["AddValueDependencies not yet implemented for inline block"]; temp0 _ FakeDamageDependencyGraph[dg]; END; } ELSE {temp0 _ FakeDamageDependencyGraph[dg]; }; END END; InitialValuemachinecodeProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValuemachinecodeProdData _ NARROW[tree.data]; temp0 _ FakeDamageDependencyGraph[dg]; END END; ExpsumProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpsumProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Expleft.procs.AddValueDependencies[treeData.Expleft, dg, dgn]; dg2 _ treeData.Expright.procs.AddValueDependencies[treeData.Expright, dg1, dgn]; temp0 _ dg2; END; END END; ExpunarysumProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpunarysumProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; temp0 _ dg1; END; END END; ExpproductProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpproductProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Expleft.procs.AddValueDependencies[treeData.Expleft, dg, dgn]; dg2 _ treeData.Expright.procs.AddValueDependencies[treeData.Expright, dg1, dgn]; temp0 _ dg2; END; END END; ExporProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExporProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Expleft.procs.AddValueDependencies[treeData.Expleft, dg, dgn]; dg2 _ treeData.Expright.procs.AddValueDependencies[treeData.Expright, dg1, dgn]; temp0 _ dg2; END; END END; ExpandProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpandProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Expleft.procs.AddValueDependencies[treeData.Expleft, dg, dgn]; dg2 _ treeData.Expright.procs.AddValueDependencies[treeData.Expright, dg1, dgn]; temp0 _ dg2; END; END END; ExpnotProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpnotProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; temp0 _ dg1; END; END END; ExprelationProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExprelationProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; temp0 _ dg1; END; END END; ExpifthenelseProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpifthenelseProdData _ NARROW[tree.data]; BEGIN dg3: DependencyGraphNode; dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Expcond.procs.AddValueDependencies[treeData.Expcond, dg, dgn]; dg2 _ treeData.Expthenpart.procs.AddValueDependencies[treeData.Expthenpart, dg1, dgn]; dg3 _ treeData.Expelsepart.procs.AddValueDependencies[treeData.Expelsepart, dg2, dgn]; temp0 _ dg3; END; END END; ExpselectProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpselectProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.select"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpassignProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpassignProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ AddRuntimeDependency[dg, dgn]; temp0 _ dg1; END; END END; ExpmultiassignProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpmultiassignProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ AddRuntimeDependency[dg, dgn]; temp0 _ dg1; END; END END; ExpidProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpidProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ AddValueDependency[dg, dgn, treeData.Id]; temp0 _ dg1; END; END END; ExpnumProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpnumProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpstringProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpstringProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpflnumProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpflnumProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpcharProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpcharProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpatomProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpatomProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpnarrowProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpnarrowProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.narrow"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExploopholeProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExploopholeProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.loophole"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpapplyProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpapplyProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.apply"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpqualifierProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpqualifierProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.qualifier"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpexplistProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpexplistProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.explist"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpprefixopProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpprefixopProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.prefixop"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpvalProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpvalProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.val"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpallProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpallProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.all"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpnewProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpnewProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.new"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpconsProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpconsProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.cons"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExplistconsProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExplistconsProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.listcons"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpnilProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN dg1: DependencyGraphNode; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExptypeopProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptypeopProdData _ NARROW[tree.data]; IF treeData.TypeOp.procs.TypeOpIsCode[treeData.TypeOp] THEN {BEGIN err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.typeop"]; temp0 _ FakeDamageDependencyGraph[dg]; END; } ELSE {IF treeData.TypeOp.procs.TypeOpIsFirst[treeData.TypeOp] THEN {temp0 _ treeData.TypeExp.procs.AddFirstDependencies[treeData.TypeExp, dg, dgn]; } ELSE {IF treeData.TypeOp.procs.TypeOpIsLast[treeData.TypeOp] THEN {temp0 _ treeData.TypeExp.procs.AddLastDependencies[treeData.TypeExp, dg, dgn]; } ELSE {IF treeData.TypeOp.procs.TypeOpIsNil[treeData.TypeOp] THEN {temp0 _ FakeDamageDependencyGraph[dg]; } ELSE {BEGIN err: BOOLEAN; err _ Error["in AddValueDependencies for Exp.typeop"]; temp0 _ FakeDamageDependencyGraph[dg]; END; }; }; }; }; END END; ExpsizeProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpsizeProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; Expsize2ProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expsize2ProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; dg2 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg1, dgn]; temp0 _ dg2; END; END END; ExpbitsProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbitsProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; Expbits2ProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbits2ProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; dg2 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg1, dgn]; temp0 _ dg2; END; END END; ExpbytesProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbytesProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; Expbytes2ProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbytes2ProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; dg2 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg1, dgn]; temp0 _ dg2; END; END END; ExpunitsProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpunitsProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; Expunits2ProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expunits2ProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; dg2 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg1, dgn]; temp0 _ dg2; END; END END; ExpwordsProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpwordsProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; Expwords2ProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expwords2ProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; dg2 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg1, dgn]; temp0 _ dg2; END; END END; ExpistypeProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpistypeProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.istype"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpaddressProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpaddressProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.address"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExpdescriptorProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpdescriptorProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.descriptor"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExperrorProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.error"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; ExptransferProdAddValueDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptransferProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for Exp.transfer"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; END..