| Portability | portable (depends on ghc) |
|---|---|
| Stability | provisional |
| Maintainer | bastiaan.heeren@ou.nl |
| Safe Haskell | None |
Ideas.Common.Strategy.Core
Description
The core strategy combinators. This module defines the interal data structure of a strategy, and some utility functions that operate directly on it.
- data GCore l a
- = (GCore l a) :*: (GCore l a)
- | (GCore l a) :|: (GCore l a)
- | (GCore l a) :|>: (GCore l a)
- | (GCore l a) :%: (GCore l a)
- | (GCore l a) :!%: (GCore l a)
- | Many (GCore l a)
- | Repeat (GCore l a)
- | Not (GCore l a)
- | Label l (GCore l a)
- | Atomic (GCore l a)
- | Succeed
- | Fail
- | Rule a
- | Var Int
- | Rec Int (GCore l a)
- type Core l a = GCore l (Rule a)
- (.|.) :: GCore l a -> GCore l a -> GCore l a
- (.*.) :: GCore l a -> GCore l a -> GCore l a
- (.%.) :: GCore l a -> GCore l a -> GCore l a
- coreMany :: GCore l a -> GCore l a
- coreRepeat :: GCore l a -> GCore l a
- coreOrElse :: GCore l a -> GCore l a -> GCore l a
- coreFix :: (GCore l a -> GCore l a) -> GCore l a
- noLabels :: GCore l a -> GCore l a
- substCoreVar :: Int -> GCore l a -> GCore l a -> GCore l a
Documentation
A generalized Core expression, not restricted to rules. This makes GCore a (traversable and foldable) functor.
Constructors
| (GCore l a) :*: (GCore l a) | |
| (GCore l a) :|: (GCore l a) | |
| (GCore l a) :|>: (GCore l a) | |
| (GCore l a) :%: (GCore l a) | |
| (GCore l a) :!%: (GCore l a) | |
| Many (GCore l a) | |
| Repeat (GCore l a) | |
| Not (GCore l a) | |
| Label l (GCore l a) | |
| Atomic (GCore l a) | |
| Succeed | |
| Fail | |
| Rule a | Generalized constructor (not restricted to rules) |
| Var Int | |
| Rec Int (GCore l a) |
coreRepeat :: GCore l a -> GCore l aSource
coreOrElse :: GCore l a -> GCore l a -> GCore l aSource