Copyright | (c) Stijn van Drongelen, 2014 |
---|---|
License | MIT |
Maintainer | rhymoid@gmail.com |
Stability | experimental |
Portability | mostly portable (deriving extensions) |
Safe Haskell | None |
Language | Haskell2010 |
A simple extension to GCL
,
including assume
, assert
, and declaration and assignment of variables.
- data ExtendedGCL name ty expr
- = Declare [(name, ty)] (ExtendedGCL name ty expr)
- | Assign [(name, expr)]
- | Assume expr
- | Assert expr
- | GCL (GCL (ExtendedGCL name ty expr) expr)
- pExtendedGCL :: (Monad m, TokenParsing m) => m name -> m ty -> m expr -> m (ExtendedGCL name ty expr)
Abstract syntax
data ExtendedGCL name ty expr Source
Declare [(name, ty)] (ExtendedGCL name ty expr) | |
Assign [(name, expr)] | |
Assume expr | |
Assert expr | |
GCL (GCL (ExtendedGCL name ty expr) expr) |
Typeable (* -> * -> * -> *) ExtendedGCL | |
(Eq name, Eq ty, Eq expr) => Eq (ExtendedGCL name ty expr) | |
(Data name, Data ty, Data expr) => Data (ExtendedGCL name ty expr) |
Parsing
pExtendedGCL :: (Monad m, TokenParsing m) => m name -> m ty -> m expr -> m (ExtendedGCL name ty expr) Source