Assertion.hs 759 Bytes
Newer Older
1 2 3
{- sv2v
 - Author: Zachary Snow <zach@zachjs.com>
 -
4
 - Conversion for removing assertions. Assertions items are "commented out."
5 6 7 8 9 10 11
 -}

module Convert.Assertion (convert) where

import Convert.Traverse
import Language.SystemVerilog.AST

12 13
convert :: [AST] -> [AST]
convert = map $ traverseDescriptions $ traverseModuleItems convertModuleItem
14 15

convertModuleItem :: ModuleItem -> ModuleItem
16 17
convertModuleItem (AssertionItem item) =
    Generate $
18
    map (GenModuleItem . MIPackageItem . Decl . CommentDecl) $
19 20
        "removed an assertion item" :
        (lines $ show $ AssertionItem item)
21 22
convertModuleItem other =
    traverseStmts (traverseNestedStmts convertStmt) other
23 24 25 26

convertStmt :: Stmt -> Stmt
convertStmt (Assertion _) = Null
convertStmt other = other