StringType.hs 676 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
{- sv2v
 - Author: Zachary Snow <zach@zachjs.com>
 -
 - Drop explicit `string` data type from parameters and localparams
 -}

module Convert.StringType (convert) where

import Convert.Traverse
import Language.SystemVerilog.AST

convert :: [AST] -> [AST]
convert = map $ traverseDescriptions $ traverseModuleItems convertModuleItem

convertModuleItem :: ModuleItem -> ModuleItem
convertModuleItem = traverseNodes id traverseDecl id id traverseStmt

traverseStmt :: Stmt -> Stmt
traverseStmt = traverseNestedStmts $ traverseStmtDecls traverseDecl

traverseDecl :: Decl -> Decl
traverseDecl (Param s (NonInteger TString) x e) = Param s UnknownType x e
traverseDecl other = other