DIRECTORY ThreeC4FlowGraphAbGramDef, ThreeC4BasicAbTypesDef; ThreeC4FlowGraphAbGramImpl: CEDAR PROGRAM IMPORTS ThreeC4FlowGraphAbGramDef EXPORTS ThreeC4FlowGraphAbGramDef= BEGIN OPEN ThreeC4FlowGraphAbGramDef, ThreeC4BasicAbTypesDef; -- DamageShareAssertionsemptyProd DamageShareAssertionsemptyProdProcs: PUBLIC DamageShareAssertionsNodeProcs ← NEW[DamageShareAssertionsNodeProcsBody ← [DamageShareAssertionsemptyProdFormRecordOfDamageShareAssertion]]; BuildDamageShareAssertionsemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[DamageShareAssertionsNode] = BEGIN RETURN[NEW[DamageShareAssertionsNodeBody←[position, length, DamageShareAssertionsemptyProdProcs, NIL]]]; END; -- DamageShareAssertionsmanyProd DamageShareAssertionsmanyProdProcs: PUBLIC DamageShareAssertionsNodeProcs ← NEW[DamageShareAssertionsNodeProcsBody ← [DamageShareAssertionsmanyProdFormRecordOfDamageShareAssertion]]; BuildDamageShareAssertionsmanyProdNode: PUBLIC PROC[position: INT, length: INT, DamageShareAssertions: DamageShareAssertionsNode, DamageShareAssertion: DamageShareAssertionNode] RETURNS[DamageShareAssertionsNode] = BEGIN data: DamageShareAssertionsmanyProdData ← NEW[DamageShareAssertionsmanyProdDataBody←[ DamageShareAssertions, DamageShareAssertion]]; RETURN[NEW[DamageShareAssertionsNodeBody←[position, length, DamageShareAssertionsmanyProdProcs, data]]]; END; -- DamageShareAssertiondamagedRepsProd DamageShareAssertiondamagedRepsProdProcs: PUBLIC DamageShareAssertionNodeProcs ← NEW[DamageShareAssertionNodeProcsBody ← [DamageShareAssertiondamagedRepsProdFormRecordOfDamageShareAssertion]]; BuildDamageShareAssertiondamagedRepsProdNode: PUBLIC PROC[position: INT, length: INT, ModIdList: ModIdListNode] RETURNS[DamageShareAssertionNode] = BEGIN data: DamageShareAssertiondamagedRepsProdData ← NEW[DamageShareAssertiondamagedRepsProdDataBody←[ ModIdList]]; RETURN[NEW[DamageShareAssertionNodeBody←[position, length, DamageShareAssertiondamagedRepsProdProcs, data]]]; END; -- DamageShareAssertionsharedRepsProd DamageShareAssertionsharedRepsProdProcs: PUBLIC DamageShareAssertionNodeProcs ← NEW[DamageShareAssertionNodeProcsBody ← [DamageShareAssertionsharedRepsProdFormRecordOfDamageShareAssertion]]; BuildDamageShareAssertionsharedRepsProdNode: PUBLIC PROC[position: INT, length: INT, ModIdList: ModIdListNode] RETURNS[DamageShareAssertionNode] = BEGIN data: DamageShareAssertionsharedRepsProdData ← NEW[DamageShareAssertionsharedRepsProdDataBody←[ ModIdList]]; RETURN[NEW[DamageShareAssertionNodeBody←[position, length, DamageShareAssertionsharedRepsProdProcs, data]]]; END; END..