2019-02-26 21:03:49 +01:00
|
|
|
{-# LANGUAGE DeriveDataTypeable #-}
|
|
|
|
|
{- sv2v
|
|
|
|
|
- Author: Zachary Snow <zach@zachjs.com>
|
|
|
|
|
-
|
|
|
|
|
- Command line arguments.
|
|
|
|
|
-}
|
|
|
|
|
|
2019-02-28 20:06:35 +01:00
|
|
|
module Job where
|
2019-02-26 21:03:49 +01:00
|
|
|
|
|
|
|
|
import System.Console.CmdArgs
|
|
|
|
|
|
2019-03-08 17:02:40 +01:00
|
|
|
data Exclude
|
|
|
|
|
= Always
|
|
|
|
|
| Interface
|
|
|
|
|
| Logic
|
|
|
|
|
deriving (Show, Typeable, Data, Eq)
|
2019-02-26 21:03:49 +01:00
|
|
|
|
|
|
|
|
data Job = Job
|
2019-03-08 17:02:40 +01:00
|
|
|
{ exclude :: [Exclude]
|
2019-03-29 00:55:53 +01:00
|
|
|
, files :: [FilePath]
|
|
|
|
|
, incdir :: [FilePath]
|
2019-04-02 22:19:59 +02:00
|
|
|
, define :: [String]
|
2019-02-26 21:03:49 +01:00
|
|
|
} deriving (Show, Typeable, Data)
|
|
|
|
|
|
|
|
|
|
defaultJob :: Job
|
|
|
|
|
defaultJob = Job
|
2019-03-08 17:02:40 +01:00
|
|
|
{ exclude = [] &= typ "CONV"
|
|
|
|
|
&= help
|
|
|
|
|
("conversion to exclude (always, interface, logic)"
|
|
|
|
|
++ "; can be specified multiple times")
|
2019-03-29 00:55:53 +01:00
|
|
|
, files = def &= args &= typ "FILES"
|
|
|
|
|
, incdir = def &= typDir &= help "add directory to include search path"
|
2019-04-02 22:19:59 +02:00
|
|
|
, define = def &= typ "NAME[=VALUE]" &= help "define value for compilation"
|
2019-02-26 21:03:49 +01:00
|
|
|
}
|
|
|
|
|
&= program "sv2v"
|
|
|
|
|
&= summary "sv2v v0.0.1, (C) Zachary Snow 2019, Tom Hawkins, 2011-2015"
|
|
|
|
|
&= details [ "sv2v converts SystemVerilog to Verilog."
|
|
|
|
|
, "More info: https://github.com/zachjs/sv2v" ]
|
|
|
|
|
|
2019-02-28 20:06:35 +01:00
|
|
|
readJob :: IO Job
|
|
|
|
|
readJob = cmdArgs defaultJob
|