mirror of https://github.com/zachjs/sv2v.git
remove over-specified traversal arguments
This commit is contained in:
parent
2535d689aa
commit
0fb97f2381
|
|
@ -208,8 +208,7 @@ collectStmtsM = collectStmtsM' IncludeTFs
|
||||||
-- higher levels up
|
-- higher levels up
|
||||||
traverseNestedStmtsM :: Monad m => MapperM m Stmt -> MapperM m Stmt
|
traverseNestedStmtsM :: Monad m => MapperM m Stmt -> MapperM m Stmt
|
||||||
traverseNestedStmtsM mapper = fullMapper
|
traverseNestedStmtsM mapper = fullMapper
|
||||||
where
|
where fullMapper = mapper >=> traverseSinglyNestedStmtsM fullMapper
|
||||||
fullMapper stmt = mapper stmt >>= traverseSinglyNestedStmtsM fullMapper
|
|
||||||
|
|
||||||
-- variant of the above which only traverses one level down
|
-- variant of the above which only traverses one level down
|
||||||
traverseSinglyNestedStmtsM :: Monad m => MapperM m Stmt -> MapperM m Stmt
|
traverseSinglyNestedStmtsM :: Monad m => MapperM m Stmt -> MapperM m Stmt
|
||||||
|
|
@ -407,7 +406,7 @@ collectStmtLHSsM = collectify traverseStmtLHSsM
|
||||||
traverseNestedExprsM :: Monad m => MapperM m Expr -> MapperM m Expr
|
traverseNestedExprsM :: Monad m => MapperM m Expr -> MapperM m Expr
|
||||||
traverseNestedExprsM mapper = exprMapper
|
traverseNestedExprsM mapper = exprMapper
|
||||||
where
|
where
|
||||||
exprMapper e = mapper e >>= em
|
exprMapper = mapper >=> em
|
||||||
(_, _, _, typeMapper) = exprMapperHelpers exprMapper
|
(_, _, _, typeMapper) = exprMapperHelpers exprMapper
|
||||||
typeOrExprMapper (Left t) =
|
typeOrExprMapper (Left t) =
|
||||||
typeMapper t >>= return . Left
|
typeMapper t >>= return . Left
|
||||||
|
|
@ -735,8 +734,8 @@ collectStmtExprsM :: Monad m => CollectorM m Expr -> CollectorM m Stmt
|
||||||
collectStmtExprsM = collectify traverseStmtExprsM
|
collectStmtExprsM = collectify traverseStmtExprsM
|
||||||
|
|
||||||
traverseLHSsM' :: Monad m => TFStrategy -> MapperM m LHS -> MapperM m ModuleItem
|
traverseLHSsM' :: Monad m => TFStrategy -> MapperM m LHS -> MapperM m ModuleItem
|
||||||
traverseLHSsM' strat mapper item =
|
traverseLHSsM' strat mapper =
|
||||||
traverseStmtsM' strat (traverseStmtLHSsM mapper) item >>= traverseModuleItemLHSsM
|
traverseStmtsM' strat (traverseStmtLHSsM mapper) >=> traverseModuleItemLHSsM
|
||||||
where
|
where
|
||||||
traverseModuleItemLHSsM (Assign delay lhs expr) = do
|
traverseModuleItemLHSsM (Assign delay lhs expr) = do
|
||||||
lhs' <- mapper lhs
|
lhs' <- mapper lhs
|
||||||
|
|
@ -784,7 +783,7 @@ collectLHSsM = collectLHSsM' IncludeTFs
|
||||||
traverseNestedLHSsM :: Monad m => MapperM m LHS -> MapperM m LHS
|
traverseNestedLHSsM :: Monad m => MapperM m LHS -> MapperM m LHS
|
||||||
traverseNestedLHSsM mapper = fullMapper
|
traverseNestedLHSsM mapper = fullMapper
|
||||||
where
|
where
|
||||||
fullMapper lhs = mapper lhs >>= tl
|
fullMapper = mapper >=> tl
|
||||||
tl (LHSIdent x ) = return $ LHSIdent x
|
tl (LHSIdent x ) = return $ LHSIdent x
|
||||||
tl (LHSBit l e ) = fullMapper l >>= \l' -> return $ LHSBit l' e
|
tl (LHSBit l e ) = fullMapper l >>= \l' -> return $ LHSBit l' e
|
||||||
tl (LHSRange l m r ) = fullMapper l >>= \l' -> return $ LHSRange l' m r
|
tl (LHSRange l m r ) = fullMapper l >>= \l' -> return $ LHSRange l' m r
|
||||||
|
|
@ -911,9 +910,9 @@ collectDeclTypesM :: Monad m => CollectorM m Type -> CollectorM m Decl
|
||||||
collectDeclTypesM = collectify traverseDeclTypesM
|
collectDeclTypesM = collectify traverseDeclTypesM
|
||||||
|
|
||||||
traverseTypesM' :: Monad m => TypeStrategy -> MapperM m Type -> MapperM m ModuleItem
|
traverseTypesM' :: Monad m => TypeStrategy -> MapperM m Type -> MapperM m ModuleItem
|
||||||
traverseTypesM' strategy mapper item =
|
traverseTypesM' strategy mapper =
|
||||||
miMapper item >>=
|
miMapper >=>
|
||||||
traverseDeclsM declMapper >>=
|
traverseDeclsM declMapper >=>
|
||||||
traverseExprsM (traverseNestedExprsM exprMapper)
|
traverseExprsM (traverseNestedExprsM exprMapper)
|
||||||
where
|
where
|
||||||
fullMapper = traverseNestedTypesM mapper
|
fullMapper = traverseNestedTypesM mapper
|
||||||
|
|
@ -970,9 +969,7 @@ collectGenItemsM = collectify traverseGenItemsM
|
||||||
-- GenModuleItems
|
-- GenModuleItems
|
||||||
traverseNestedGenItemsM :: Monad m => MapperM m GenItem -> MapperM m GenItem
|
traverseNestedGenItemsM :: Monad m => MapperM m GenItem -> MapperM m GenItem
|
||||||
traverseNestedGenItemsM mapper = fullMapper
|
traverseNestedGenItemsM mapper = fullMapper
|
||||||
where
|
where fullMapper = mapper >=> traverseSinglyNestedGenItemsM fullMapper
|
||||||
fullMapper stmt =
|
|
||||||
mapper stmt >>= traverseSinglyNestedGenItemsM fullMapper
|
|
||||||
|
|
||||||
traverseNestedGenItems :: Mapper GenItem -> Mapper GenItem
|
traverseNestedGenItems :: Mapper GenItem -> Mapper GenItem
|
||||||
traverseNestedGenItems = unmonad traverseNestedGenItemsM
|
traverseNestedGenItems = unmonad traverseNestedGenItemsM
|
||||||
|
|
@ -1007,7 +1004,7 @@ traverseSinglyNestedGenItemsM fullMapper = gim
|
||||||
traverseAsgnsM' :: Monad m => TFStrategy -> MapperM m (LHS, Expr) -> MapperM m ModuleItem
|
traverseAsgnsM' :: Monad m => TFStrategy -> MapperM m (LHS, Expr) -> MapperM m ModuleItem
|
||||||
traverseAsgnsM' strat mapper = moduleItemMapper
|
traverseAsgnsM' strat mapper = moduleItemMapper
|
||||||
where
|
where
|
||||||
moduleItemMapper item = miMapperA item >>= miMapperB
|
moduleItemMapper = miMapperA >=> miMapperB
|
||||||
|
|
||||||
miMapperA (Assign delay lhs expr) = do
|
miMapperA (Assign delay lhs expr) = do
|
||||||
(lhs', expr') <- mapper (lhs, expr)
|
(lhs', expr') <- mapper (lhs, expr)
|
||||||
|
|
@ -1101,8 +1098,8 @@ traverseScopesM declMapper moduleItemMapper stmtMapper =
|
||||||
fullModuleItemMapper
|
fullModuleItemMapper
|
||||||
where
|
where
|
||||||
|
|
||||||
nestedStmtMapper stmt =
|
nestedStmtMapper =
|
||||||
stmtMapper stmt >>= traverseSinglyNestedStmtsM fullStmtMapper
|
stmtMapper >=> traverseSinglyNestedStmtsM fullStmtMapper
|
||||||
fullStmtMapper (Block kw name decls stmts) = do
|
fullStmtMapper (Block kw name decls stmts) = do
|
||||||
prevState <- get
|
prevState <- get
|
||||||
decls' <- mapM declMapper decls
|
decls' <- mapM declMapper decls
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue