diff options
Diffstat (limited to 'src/Grasp/Monad.hs')
-rw-r--r-- | src/Grasp/Monad.hs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/Grasp/Monad.hs b/src/Grasp/Monad.hs index 86de9a2..0bab4c8 100644 --- a/src/Grasp/Monad.hs +++ b/src/Grasp/Monad.hs @@ -13,7 +13,7 @@ module Grasp.Monad ( peekIP, nextIP, - nodesOut, edgesOut, + nodesOut, edgesOut, edgesIn, reLabel, nodesWithName, subGraph, @@ -331,6 +331,18 @@ edgesOut n = do +edgesIn :: GNode -> GraspM [GEdge] +edgesIn n = do + (gr, ips, fh) <- State.get + curNode <- peekIP + + let ein = Graph.inn gr (GN.toNode (Maybe.fromJust curNode)) + result = map GE.mk ein + + if (Maybe.isNothing curNode) then return [] else return result + + + reLabel :: Instruction -> GNode -> GraspM () reLabel i n = do (gr, ips, fh) <- State.get |