ADPfusion-0.4.1.1: Efficient, high-level dynamic programming.

Safe HaskellNone
LanguageHaskell2010

ADP.Fusion.Term.Chr.Type

Synopsis

Documentation

data Chr r x where Source

A generic Character parser that reads a single character but allows passing additional information.

Chr expects a function to retrieve r at index position, followed by the actual generic vector with data.

Constructors

Chr :: Vector v x => (v x -> Int -> r) -> v x -> Chr r x 

Instances

(Monad m, Element ls PointL, MkStream m ls PointL) => MkStream m ((:!:) ls (Chr r x)) PointL 
(Monad m, Element ls Subword, MkStream m ls Subword) => MkStream m ((:!:) ls (Chr r x)) Subword 
(Monad m, Element ls (Outside PointL), MkStream m ls (Outside PointL)) => MkStream m ((:!:) ls (Chr r x)) (Outside PointL) 
(Monad m, Element ls (Outside Subword), MkStream m ls (Outside Subword)) => MkStream m ((:!:) ls (Chr r x)) (Outside Subword) 
(Monad m, TerminalStream m a (Outside is), (~) * (Context (Outside ((:.) is PointL))) ((:.) (Context (Outside is)) (OutsideContext Int))) => TerminalStream m (TermSymbol a (Chr r x)) (Outside ((:.) is PointL)) 
(Monad m, TerminalStream m a is) => TerminalStream m (TermSymbol a (Chr r x)) ((:.) is PointL) 
(Monad m, TerminalStream m a is) => TerminalStream m (TermSymbol a (Chr r x)) ((:.) is Subword) 
(Show i, Show r, Show (Elm ls i)) => Show (Elm ((:!:) ls (Chr r x)) i) 
Build (Chr r x) 
Element ls i => Element ((:!:) ls (Chr r x)) i 
TermStaticVar (Chr r x) PointL 
TermStaticVar (Chr r x) Subword 
GetIxs ls i => GetIxs ((:!:) ls (Chr a b)) i 
TermStaticVar (Chr r x) (Outside PointL) 
type Stack (Chr r x) = (:!:) S (Chr r x) 
data Elm ((:!:) ls (Chr r x)) = ElmChr !r !i !i !(Elm ls i) 
type Arg ((:!:) ls (Chr r x)) = (:.) (Arg ls) r 
type TermArg (TermSymbol a (Chr r x)) = (:.) (TermArg a) r 
type R ((:!:) ls (Chr a b)) i = (:.) (R ls i) (i, i) 

chr :: Vector v x => v x -> Chr x x Source

smart constructor for regular 1-character parsers

chrLeft :: Vector v x => v x -> Chr (Maybe x, x) x Source

Smart constructor for Maybe Peeking, followed by a character.