verismith-0.4.0.0: src/Verismith/Verilog.hs
{-|
Module : Verismith.Verilog
Description : Verilog implementation with random generation and mutations.
Copyright : (c) 2019, Yann Herklotz Grave
License : GPL-3
Maintainer : yann [at] yannherklotz [dot] com
Stability : experimental
Portability : POSIX
Verilog implementation with random generation and mutations.
-}
{-# LANGUAGE QuasiQuotes #-}
module Verismith.Verilog
( SourceInfo(..)
, Verilog(..)
, parseVerilog
, GenVerilog(..)
, genSource
-- * Primitives
-- ** Identifier
, Identifier(..)
-- ** Control
, Delay(..)
, Event(..)
-- ** Operators
, BinaryOperator(..)
, UnaryOperator(..)
-- ** Task
, Task(..)
, taskName
, taskExpr
-- ** Left hand side value
, LVal(..)
, regId
, regExprId
, regExpr
, regSizeId
, regSizeRange
, regConc
-- ** Ports
, PortDir(..)
, PortType(..)
, Port(..)
, portType
, portSigned
, portSize
, portName
-- * Expression
, Expr(..)
, ConstExpr(..)
, constToExpr
, exprToConst
, constNum
-- * Assignment
, Assign(..)
, assignReg
, assignDelay
, assignExpr
, ContAssign(..)
, contAssignNetLVal
, contAssignExpr
-- * Statment
, Statement(..)
, statDelay
, statDStat
, statEvent
, statEStat
, statements
, stmntBA
, stmntNBA
, stmntTask
, stmntSysTask
, stmntCondExpr
, stmntCondTrue
, stmntCondFalse
-- * Module
, ModDecl(..)
, modId
, modOutPorts
, modInPorts
, modItems
, ModItem(..)
, modContAssign
, modInstId
, modInstName
, modInstConns
, traverseModItem
, declDir
, declPort
, ModConn(..)
, modConnName
, modExpr
-- * Useful Lenses and Traversals
, getModule
, getSourceId
-- * Quote
, verilog
)
where
import Verismith.Verilog.AST
import Verismith.Verilog.CodeGen
import Verismith.Verilog.Parser
import Verismith.Verilog.Quote