module Data.Avc.Type
( Signal(..)
, Comment(..)
, Statement(..)
) where
import Data.ByteString.Char8 as BS hiding (split)
type Rep = Int
type DevCyc = ByteString
type Vec = ByteString -- TODO: Vector
type Name = ByteString
-- | A Signal has a name
data Signal = Sig Name
| SigGroup Name -- TODO: need pin-config file to implement
deriving (Show, Eq)
-- | May be useful to keep vector comments
data Comment = Comment ByteString
| CNil
deriving (Show, Eq)
-- | A statement is a "FORMAT a b c;" definition or a "RXX devcyc vecdata; comment"
data Statement = Repeat Rep DevCyc Vec Comment
| Format [Signal] Comment
| EOF
deriving (Show, Eq)
-- I forget what this is for
-- instance NFData Signal where rnf = genericRnf
-- instance NFData Comment where rnf = genericRnf
-- instance NFData Statement where rnf = genericRnf