|
Language.ContextFree.CfgM | Portability | portable | Stability | provisional | Maintainer | jas@di.uminho.pt |
|
|
|
|
|
Description |
Regular Expressions in Haskell. Code Included in the Lecture Notes on
Language Processing (with a functional flavour).
|
|
Synopsis |
|
data Cfg m sy = Cfg {} | | type ProdM m sy = (sy, m) | | (|->) :: a -> [a] -> [a] | | (<$>) :: a -> b -> (a, b) | | ($->) :: Monad m => a -> [(a, m ())] -> [(a, m ())] | | (<$$>) :: MonadState s m => t -> (s -> s) -> (t, m ()) | | (<*>) :: a -> [a] -> [a] | | (<$*>) :: Monad m => a -> [(a, m ())] -> [(a, m ())] | | exExpa :: MonadState Int m => Cfg (m ()) [Char] | | | | exExpb :: MonadState [Exp] m => Cfg (m ()) [Char] | | exExpc :: MonadState [Exp] m => Cfg (m ()) [Char] |
|
|
|
Context-free grammars with actions. |
|
data Cfg m sy |
Datatype of context-free grammars with actions. | Constructors | Cfg | | terminals :: [sy] | | nonterminals :: [sy] | | root :: sy | | prods :: [[(sy, m)]] | |
|
| Instances | (Show sy, ??? m sy) => Show (Cfg m sy) |
|
|
|
type ProdM m sy = (sy, m) |
Type synonym for productions with actions |
|
(|->) :: a -> [a] -> [a] |
Create a production from LHS and RHS. |
|
(<$>) :: a -> b -> (a, b) |
Create a production with action from a production and an action. |
|
($->) :: Monad m => a -> [(a, m ())] -> [(a, m ())] |
Create a production with empty LHS action. |
|
(<$$>) :: MonadState s m => t -> (s -> s) -> (t, m ()) |
Create a production with a state-modifying action |
|
(<*>) :: a -> [a] -> [a] |
Construct list of RHS symbols with actions. The first argument
is a symbol with action. |
|
(<$*>) :: Monad m => a -> [(a, m ())] -> [(a, m ())] |
Construct list of RHS symbols with actions. The first argument
is a symbol without action. |
|
Examples |
|
exExpa :: MonadState Int m => Cfg (m ()) [Char] |
|
data Exp |
|
|
exExpb :: MonadState [Exp] m => Cfg (m ()) [Char] |
|
exExpc :: MonadState [Exp] m => Cfg (m ()) [Char] |
|
Produced by Haddock version 0.6 |