 | atom-1.0.7: A DSL for embedded hard realtime applications. | Contents | Index |
|
Language.Atom.Elaboration |
|
|
|
|
|
Synopsis |
|
|
|
|
Atom monad and container.
|
|
data Atom a |
The Atom monad holds variable and rule declarations.
| Instances | |
|
|
data AtomDB |
Constructors | | Instances | |
|
|
data Global |
|
|
data Rule |
Constructors | Rule | | | Assert | | ruleName :: Name | | ruleEnable :: UE | | ruleAssert :: UE | |
| Cover | | ruleName :: Name | | ruleEnable :: UE | | ruleCover :: UE | |
|
| Instances | |
|
|
data StateHierarchy |
|
|
buildAtom :: Global -> Name -> Atom a -> IO (a, (Global, AtomDB)) |
|
Type Aliases and Utilities
|
|
type UID = Int |
|
type Name = String |
A name.
|
|
data Phase |
A phase is either the minimum phase or the exact phase.
| Constructors | |
|
|
type Path = [Name] |
A hierarchical name.
|
|
elaborate :: Name -> Atom () -> IO (Maybe (StateHierarchy, [Rule], [Name], [Name], [(Name, Type)])) |
A Relation is used for relative performance constraints between Actions.
data Relation = Higher UID | Lower UID deriving (Show, Eq)
Given a top level name and design, elaborates design and returns a design database.
|
|
var :: Expr a => Name -> a -> Atom (V a) |
Generic local variable declaration.
|
|
var' :: Name -> Type -> V a |
Generic external variable declaration.
|
|
array :: Expr a => Name -> [a] -> Atom (A a) |
Generic array declaration.
|
|
array' :: Expr a => Name -> Type -> A a |
Generic external array declaration.
|
|
addName :: Name -> Atom Name |
|
get :: Atom (Global, AtomDB) |
|
put :: (Global, AtomDB) -> Atom () |
|
allUVs :: [Rule] -> UE -> [UV] |
All the variables that directly and indirectly control the value of an expression.
|
|
allUEs :: Rule -> [UE] |
All primary expressions used in a rule.
|
|
Produced by Haddock version 2.7.2 |