Portability | portable (depends on ghc) |
---|---|
Stability | provisional |
Maintainer | bastiaan.heeren@ou.nl |
Safe Haskell | None |
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.
(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