-- SaffronTypeDependenciesImpl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 6:37:22 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG6aDef, SaffronAG6bDef, SaffronAG7bDef, SaffronAG6cDef, ThreeC4Support, SaffronBaseDef, SaffronATDef; SaffronTypeDependenciesImpl: CEDAR PROGRAM IMPORTS ThreeC4Support, SaffronBaseDef EXPORTS SaffronAG6aDef, SaffronAG6bDef, SaffronAG7bDef, SaffronAG6cDef= BEGIN OPEN SaffronAG6aDef, SaffronAG6bDef, SaffronAG7bDef, SaffronAG6cDef, ThreeC4Support, SaffronBaseDef, SaffronATDef; TypeExprecordProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprecordProdData _ NARROW[tree.data]; temp0 _ treeData.RecList.procs.AddSizeDependencies[treeData.RecList, dg, dgn]; END END; TypeExprecordProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprecordProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on record types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExprecordProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprecordProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on record types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpunionProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpunionProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.VariantList.procs.AddSizeDependencies[treeData.VariantList, dg, dgn]; dg2 _ treeData.Tag.procs.AddSizeDependencies[treeData.Tag, dg1, dgn]; temp0 _ dg2; END; END END; TypeExpunionProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpunionProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on union types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpunionProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpunionProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on union types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpsequenceProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpsequenceProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; dg2 _ treeData.Tag.procs.AddSizeDependencies[treeData.Tag, dg1, dgn]; temp0 _ dg2; END; END END; TypeExpsequenceProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpsequenceProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on sequence types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpsequenceProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpsequenceProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on sequence types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpenumProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpenumProdData _ NARROW[tree.data]; temp0 _ treeData.ElementList.procs.AddSizeDependencies[treeData.ElementList, dg, dgn]; END END; TypeExpenumProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpenumProdData _ NARROW[tree.data]; temp0 _ treeData.ElementList.procs.AddLastDependencies[treeData.ElementList, dg, dgn]; END END; TypeExpenumProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpenumProdData _ NARROW[tree.data]; temp0 _ treeData.ElementList.procs.AddFirstDependencies[treeData.ElementList, dg, dgn]; END END; TypeExprefProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprefProdData _ NARROW[tree.data]; temp0 _ FakeDamageDependencyGraph[dg]; END END; TypeExprefProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprefProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on REF types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExprefProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprefProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on REF types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExprefanyProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprefanyProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.refany"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExprefanyProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprefanyProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on REF ANY"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExprefanyProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprefanyProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on REF ANY"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExprefunspecifiedProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.refunspecified"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExprefunspecifiedProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on REF UNSPECIFIED"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExprefunspecifiedProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on REF UNSPECIFIED"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExptypeidProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptypeidProdData _ NARROW[tree.data]; temp0 _ treeData.TypeId.procs.AddSizeDependencies[treeData.TypeId, dg, dgn]; END END; TypeExptypeidProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptypeidProdData _ NARROW[tree.data]; temp0 _ treeData.TypeId.procs.AddLastDependencies[treeData.TypeId, dg, dgn]; END END; TypeExptypeidProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptypeidProdData _ NARROW[tree.data]; temp0 _ treeData.TypeId.procs.AddFirstDependencies[treeData.TypeId, dg, dgn]; END END; TypeExpsubrangeProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpsubrangeProdData _ NARROW[tree.data]; temp0 _ treeData.Subrange.procs.AddSizeDependencies[treeData.Subrange, dg, dgn]; END END; TypeExpsubrangeProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpsubrangeProdData _ NARROW[tree.data]; temp0 _ treeData.Subrange.procs.AddLastDependencies[treeData.Subrange, dg, dgn]; END END; TypeExpsubrangeProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpsubrangeProdData _ NARROW[tree.data]; temp0 _ treeData.Subrange.procs.AddFirstDependencies[treeData.Subrange, dg, dgn]; END END; TypeExppointerProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExppointerProdData _ NARROW[tree.data]; temp0 _ FakeDamageDependencyGraph[dg]; END END; TypeExppointerProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExppointerProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on pointer types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExppointerProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExppointerProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on pointer types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpvarProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpvarProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.var"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExpvarProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpvarProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on VAR types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpvarProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpvarProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on VAR types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExplistProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExplistProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.list"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExplistProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExplistProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on LIST types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExplistProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExplistProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on LIST types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExparrayProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExparrayProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.array"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExparrayProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExparrayProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on ARRAY types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExparrayProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExparrayProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on ARRAY types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpdescriptorProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpdescriptorProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.descriptor"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExpdescriptorProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpdescriptorProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on descriptor types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpdescriptorProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpdescriptorProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on descriptor types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExptransferProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptransferProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.transfer"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExptransferProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptransferProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on transfer types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExptransferProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptransferProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on transfer types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExprelativeProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprelativeProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.relative"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExprelativeProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprelativeProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on relative types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExprelativeProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExprelativeProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on relative types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpzoneProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpzoneProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.zone"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExpzoneProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpzoneProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on zone types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpzoneProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpzoneProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on zone types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExplongProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExplongProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; TypeExplongProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExplongProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddLastDependencies[treeData.TypeExp, dg, dgn]; END END; TypeExplongProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExplongProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddFirstDependencies[treeData.TypeExp, dg, dgn]; END END; TypeExpframeProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpframeProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.frame"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExpframeProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpframeProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["LAST is not a valid operation on frame types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExpframeProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExpframeProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["FIRST is not a valid operation on frame types"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExppaintedProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExppaintedProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.painted"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExppaintedProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExppaintedProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.painted"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExppaintedProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExppaintedProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.painted"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExptypeapplyProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptypeapplyProdData _ NARROW[tree.data]; BEGIN dg1: DependencyGraphNode; err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.typeapply"]; dg1 _ FakeDamageDependencyGraph[dg]; temp0 _ dg1; END; END END; TypeExptypeapplyProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptypeapplyProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.typeapply"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeExptypeapplyProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeExptypeapplyProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeExp.typeapply"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; RecListemptyProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: RecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageDependencyGraph[dg]; END END; RecListpairlistProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: RecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: RecListpairlistProdData _ NARROW[tree.data]; temp0 _ treeData.PairList.procs.AddSizeDependencies[treeData.PairList, dg, dgn]; END END; RecListtypelistProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: RecListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: RecListtypelistProdData _ NARROW[tree.data]; temp0 _ treeData.TypeList.procs.AddSizeDependencies[treeData.TypeList, dg, dgn]; END END; PairListoneProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: PairListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: PairListoneProdData _ NARROW[tree.data]; temp0 _ treeData.PairItem.procs.AddSizeDependencies[treeData.PairItem, dg, dgn]; END END; PairListmanyProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: PairListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: PairListmanyProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.PairListhead.procs.AddSizeDependencies[treeData.PairListhead, dg, dgn]; dg2 _ treeData.PairListtail.procs.AddSizeDependencies[treeData.PairListtail, dg1, dgn]; temp0 _ dg2; END; END END; TypeListoneProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeListoneProdData _ NARROW[tree.data]; temp0 _ treeData.TypeItem.procs.AddSizeDependencies[treeData.TypeItem, dg, dgn]; END END; TypeListmanyProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeListmanyProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.TypeListhead.procs.AddSizeDependencies[treeData.TypeListhead, dg, dgn]; dg2 _ treeData.TypeListtail.procs.AddSizeDependencies[treeData.TypeListtail, dg1, dgn]; temp0 _ dg2; END; END END; PairItemProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: PairItemNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: PairItemProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; TypeItemProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeItemNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeItemProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; TagidentProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TagNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TagidentProdData _ NARROW[tree.data]; temp0 _ treeData.TagType.procs.AddSizeDependencies[treeData.TagType, dg, dgn]; END END; TagcomputedProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TagNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TagcomputedProdData _ NARROW[tree.data]; temp0 _ treeData.TagType.procs.AddSizeDependencies[treeData.TagType, dg, dgn]; END END; TagoverlaidProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TagNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TagoverlaidProdData _ NARROW[tree.data]; temp0 _ treeData.TagType.procs.AddSizeDependencies[treeData.TagType, dg, dgn]; END END; TagTypestarProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TagTypeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageDependencyGraph[dg]; END END; TagTypetypeexpProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TagTypeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TagTypetypeexpProdData _ NARROW[tree.data]; temp0 _ treeData.TypeExp.procs.AddSizeDependencies[treeData.TypeExp, dg, dgn]; END END; VariantListoneProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: VariantListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: VariantListoneProdData _ NARROW[tree.data]; temp0 _ treeData.VariantItem.procs.AddSizeDependencies[treeData.VariantItem, dg, dgn]; END END; VariantListmoreProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: VariantListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: VariantListmoreProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.VariantItem.procs.AddSizeDependencies[treeData.VariantItem, dg, dgn]; dg2 _ treeData.VariantList.procs.AddSizeDependencies[treeData.VariantList, dg1, dgn]; temp0 _ dg2; END; END END; VariantItemProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: VariantItemNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: VariantItemProdData _ NARROW[tree.data]; temp0 _ treeData.RecList.procs.AddSizeDependencies[treeData.RecList, dg, dgn]; END END; ElementListemptyProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageDependencyGraph[dg]; END END; ElementListemptyProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageDependencyGraph[dg]; END END; ElementListemptyProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ FakeDamageDependencyGraph[dg]; END END; ElementListmoreProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementListmoreProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Element.procs.AddSizeDependencies[treeData.Element, dg, dgn]; dg2 _ treeData.ElementList.procs.AddSizeDependencies[treeData.ElementList, dg1, dgn]; temp0 _ dg2; END; END END; ElementListmoreProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementListmoreProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Element.procs.AddLastDependencies[treeData.Element, dg, dgn]; dg2 _ treeData.ElementList.procs.AddLastDependencies[treeData.ElementList, dg1, dgn]; temp0 _ dg2; END; END END; ElementListmoreProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementListmoreProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Element.procs.AddFirstDependencies[treeData.Element, dg, dgn]; dg2 _ treeData.ElementList.procs.AddFirstDependencies[treeData.ElementList, dg1, dgn]; temp0 _ dg2; END; END END; ElementidProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementidProdData _ NARROW[tree.data]; temp0 _ FakeDamageDependencyGraph[dg]; END END; ElementidProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementidProdData _ NARROW[tree.data]; temp0 _ FakeDamageDependencyGraph[dg]; END END; ElementidProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementidProdData _ NARROW[tree.data]; temp0 _ FakeDamageDependencyGraph[dg]; END END; ElementidwithrepProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementidwithrepProdData _ NARROW[tree.data]; temp0 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; END END; ElementidwithrepProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementidwithrepProdData _ NARROW[tree.data]; temp0 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; END END; ElementidwithrepProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementidwithrepProdData _ NARROW[tree.data]; temp0 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; END END; ElementanonymousrepProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementanonymousrepProdData _ NARROW[tree.data]; temp0 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; END END; ElementanonymousrepProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementanonymousrepProdData _ NARROW[tree.data]; temp0 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; END END; ElementanonymousrepProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: ElementNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ElementanonymousrepProdData _ NARROW[tree.data]; temp0 _ treeData.Exp.procs.AddValueDependencies[treeData.Exp, dg, dgn]; END END; TypeIdidProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdidProdData _ NARROW[tree.data]; temp0 _ AddSizeDependency[dg, dgn, treeData.Id]; END END; TypeIdidProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdidProdData _ NARROW[tree.data]; temp0 _ AddLastDependency[dg, dgn, treeData.Id]; END END; TypeIdidProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdidProdData _ NARROW[tree.data]; temp0 _ AddFirstDependency[dg, dgn, treeData.Id]; END END; TypeIdqualifierProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdqualifierProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeId.qualifier"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeIdqualifierProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdqualifierProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeId.qualifier"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; TypeIdqualifierProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: TypeIdNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: TypeIdqualifierProdData _ NARROW[tree.data]; BEGIN err: BOOLEAN; err _ Error["Dependency analysis not implemented for TypeId.qualifier"]; temp0 _ FakeDamageDependencyGraph[dg]; END; END END; SubrangenamedProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: SubrangeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: SubrangenamedProdData _ NARROW[tree.data]; temp0 _ treeData.Interval.procs.AddSizeDependencies[treeData.Interval, dg, dgn]; END END; SubrangenamedProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: SubrangeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: SubrangenamedProdData _ NARROW[tree.data]; temp0 _ treeData.Interval.procs.AddLastDependencies[treeData.Interval, dg, dgn]; END END; SubrangenamedProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: SubrangeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: SubrangenamedProdData _ NARROW[tree.data]; temp0 _ treeData.Interval.procs.AddFirstDependencies[treeData.Interval, dg, dgn]; END END; SubrangeunnamedProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: SubrangeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: SubrangeunnamedProdData _ NARROW[tree.data]; temp0 _ treeData.Interval.procs.AddSizeDependencies[treeData.Interval, dg, dgn]; END END; SubrangeunnamedProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: SubrangeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: SubrangeunnamedProdData _ NARROW[tree.data]; temp0 _ treeData.Interval.procs.AddLastDependencies[treeData.Interval, dg, dgn]; END END; SubrangeunnamedProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: SubrangeNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: SubrangeunnamedProdData _ NARROW[tree.data]; temp0 _ treeData.Interval.procs.AddFirstDependencies[treeData.Interval, dg, dgn]; END END; IntervalccProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalccProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddSizeDependencies[treeData.Bounds, dg, dgn]; END END; IntervalccProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalccProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddLastDependencies[treeData.Bounds, dg, dgn]; END END; IntervalccProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalccProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddFirstDependencies[treeData.Bounds, dg, dgn]; END END; IntervalcoProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalcoProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddSizeDependencies[treeData.Bounds, dg, dgn]; END END; IntervalcoProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalcoProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddLastDependencies[treeData.Bounds, dg, dgn]; END END; IntervalcoProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalcoProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddFirstDependencies[treeData.Bounds, dg, dgn]; END END; IntervalocProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalocProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddSizeDependencies[treeData.Bounds, dg, dgn]; END END; IntervalocProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalocProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddLastDependencies[treeData.Bounds, dg, dgn]; END END; IntervalocProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalocProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddFirstDependencies[treeData.Bounds, dg, dgn]; END END; IntervalooProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalooProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddSizeDependencies[treeData.Bounds, dg, dgn]; END END; IntervalooProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalooProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddLastDependencies[treeData.Bounds, dg, dgn]; END END; IntervalooProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: IntervalNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IntervalooProdData _ NARROW[tree.data]; temp0 _ treeData.Bounds.procs.AddFirstDependencies[treeData.Bounds, dg, dgn]; END END; BoundsProdAddSizeDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: BoundsNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BoundsProdData _ NARROW[tree.data]; BEGIN dg2: DependencyGraphNode; dg1: DependencyGraphNode; dg1 _ treeData.Explower.procs.AddValueDependencies[treeData.Explower, dg, dgn]; dg2 _ treeData.Expupper.procs.AddValueDependencies[treeData.Expupper, dg1, dgn]; temp0 _ dg2; END; END END; BoundsProdAddLastDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: BoundsNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BoundsProdData _ NARROW[tree.data]; temp0 _ treeData.Expupper.procs.AddValueDependencies[treeData.Expupper, dg, dgn]; END END; BoundsProdAddFirstDependencies: PUBLIC PROC[ref: REF ANY, dg: DependencyGraphNode, dgn: DependencyGraphNodeNode] RETURNS[temp0: DependencyGraphNode] = BEGIN tree: BoundsNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: BoundsProdData _ NARROW[tree.data]; temp0 _ treeData.Explower.procs.AddValueDependencies[treeData.Explower, dg, dgn]; END END; END..