-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A staged lexer generator -- -- Like alex, sasha is lexer/scanner generator; but it -- is using Typed Template Haskell. . The generated scanners are -- comparable in speed to alex generated ones. @package sasha @version 0 module Sasha.Internal.Word8Set data Word8Set type Key = Word8 empty :: Word8Set full :: Word8Set singleton :: Word8 -> Word8Set range :: Word8 -> Word8 -> Word8Set fromList :: [Word8] -> Word8Set insert :: Word8 -> Word8Set -> Word8Set delete :: Word8 -> Word8Set -> Word8Set member :: Word8 -> Word8Set -> Bool -- | Optimized routing to check membership when Word8Set is -- statically known. -- --
--   memberCode c ws = [||member $$c $$(liftTyped ws) ||]
--   
memberCode :: Code Q Word8 -> Word8Set -> Code Q Bool isSubsetOf :: Word8Set -> Word8Set -> Bool null :: Word8Set -> Bool isFull :: Word8Set -> Bool isSingleRange :: Word8Set -> Bool size :: Word8Set -> Int union :: Word8Set -> Word8Set -> Word8Set intersection :: Word8Set -> Word8Set -> Word8Set complement :: Word8Set -> Word8Set findMin :: Word8Set -> Word8 findMax :: Word8Set -> Word8 elems :: Word8Set -> [Word8] toList :: Word8Set -> [Word8] instance GHC.Classes.Ord Sasha.Internal.Word8Set.Word8Set instance GHC.Classes.Eq Sasha.Internal.Word8Set.Word8Set instance GHC.Show.Show Sasha.Internal.Word8Set.Word8Set instance Language.Haskell.TH.Syntax.Lift Sasha.Internal.Word8Set.Word8Set instance GHC.Base.Semigroup Sasha.Internal.Word8Set.Word8Set instance GHC.Base.Monoid Sasha.Internal.Word8Set.Word8Set instance Test.QuickCheck.Arbitrary.Arbitrary Sasha.Internal.Word8Set.Word8Set instance Algebra.Lattice.Lattice Sasha.Internal.Word8Set.Word8Set instance Algebra.Lattice.BoundedJoinSemiLattice Sasha.Internal.Word8Set.Word8Set instance Algebra.Lattice.BoundedMeetSemiLattice Sasha.Internal.Word8Set.Word8Set module Sasha.Internal.ERE -- | Extended regular expression data ERE -- | Concatenation EREAppend :: [ERE] -> ERE -- | Union EREUnion :: Word8Set -> Set ERE -> ERE -- | Kleene star EREStar :: ERE -> ERE -- | Complement ERENot :: ERE -> ERE -- | Empty regex. Doesn't accept anything. -- --
--   match empty s === False
--   
empty :: ERE -- | Empty string. Note: different than empty. -- --
--   match eps s === null s
--   
eps :: ERE -- | Character. char :: Word8 -> ERE -- | Character range. charRange :: Word8 -> Word8 -> ERE -- | UTF8 character, i.e. may match multiple bytes. utf8Char :: Char -> ERE -- | Any character. anyChar :: ERE anyUtf8Char :: ERE -- | Concatenate regular expressions. -- --
--   r <> empty === empty
--   
-- --
--   empty <>  r === empty
--   
-- --
--   ( r <> s) <> t === r <> (s <> t)
--   
-- --
--   r <> eps === r
--   
-- --
--   eps <>  r === r
--   
appends :: [ERE] -> ERE -- | Union of regular expressions. -- --
--   r \/ r === r
--   
-- --
--   r \/ s === s \/ r
--   
-- --
--   ( r \/ s) \/ t === r \/ (s \/ t)
--   
-- --
--   empty \/  r === r
--   
-- --
--   r \/ empty === r
--   
-- --
--   everything \/  r === everything
--   
-- --
--   r \/ everything === everything
--   
unions :: [ERE] -> ERE -- | Intersection of regular expressions. -- --
--   r /\ r === r
--   
-- --
--   r /\ s === s /\ r
--   
-- --
--   ( r /\ s) /\ t === r /\ (s /\ t)
--   
-- --
--   empty /\  r === empty
--   
-- --
--   r /\ empty === empty
--   
-- --
--   everything /\  r === r
--   
-- --
--   r /\ everything === r
--   
intersections :: [ERE] -> ERE -- | Kleene star. -- --
--   star (star r) === star ( r)
--   
-- --
--   star eps     ===  eps
--   
-- --
--   star empty   ===  eps
--   
-- --
--   star anyChar ===  everything
--   
-- --
--   star (r \/ eps) === star r
--   
-- --
--   star (char c \/ eps) === star (char c)
--   
-- --
--   star (empty \/ eps) === eps
--   
star :: ERE -> ERE -- | Kleene plus -- --
--   plus r = r <> star r
--   
plus :: ERE -> ERE -- | Literal string. string :: [Word8] -> ERE -- | UTF8 string utf8String :: String -> ERE -- | Complement. -- --
--   complement (complement r) ===  r
--   
complement :: ERE -> ERE -- | Everything. -- --
--   match everything s === True
--   
everything :: ERE satisfy :: (Word8 -> Bool) -> ERE digit :: ERE equivalent :: ERE -> ERE -> Bool -- | We say that a regular expression r is nullable if the language it -- defines contains the empty string. -- --
--   >>> nullable eps
--   True
--   
-- --
--   >>> nullable (star "x")
--   True
--   
-- --
--   >>> nullable "foo"
--   False
--   
-- --
--   >>> nullable (complement eps)
--   False
--   
nullable :: ERE -> Bool -- | Intuitively, the derivative of a language <math> with respect to -- a symbol <math> is the language that includes only those -- suffixes of strings with a leading symbol <math> in -- <math>. derivative :: Word8 -> ERE -> ERE match :: ERE -> [Word8] -> Bool -- | Whether ERE is (structurally) equal to empty. isEmpty :: ERE -> Bool -- | Whether ERE is (structurally) equal to everything. isEverything :: ERE -> Bool instance GHC.Show.Show Sasha.Internal.ERE.ERE instance GHC.Classes.Ord Sasha.Internal.ERE.ERE instance GHC.Classes.Eq Sasha.Internal.ERE.ERE instance GHC.Base.Semigroup Sasha.Internal.ERE.ERE instance GHC.Base.Monoid Sasha.Internal.ERE.ERE instance Algebra.Lattice.Lattice Sasha.Internal.ERE.ERE instance Algebra.Lattice.BoundedJoinSemiLattice Sasha.Internal.ERE.ERE instance Algebra.Lattice.BoundedMeetSemiLattice Sasha.Internal.ERE.ERE instance Data.String.IsString Sasha.Internal.ERE.ERE instance Test.QuickCheck.Arbitrary.Arbitrary Sasha.Internal.ERE.ERE module Sasha -- | Lexer grammar specification: tags and regular expressions. type Sasha tag = [(tag, ERE)] -- | Scan for a single token. sasha :: forall tag. Sasha tag -> ByteString -> Maybe (tag, ByteString, ByteString) -- | Extended regular expression data ERE -- | Empty regex. Doesn't accept anything. -- --
--   match empty s === False
--   
empty :: ERE -- | Empty string. Note: different than empty. -- --
--   match eps s === null s
--   
eps :: ERE -- | Character. char :: Word8 -> ERE -- | Character range. charRange :: Word8 -> Word8 -> ERE -- | UTF8 character, i.e. may match multiple bytes. utf8Char :: Char -> ERE -- | Any character. anyChar :: ERE anyUtf8Char :: ERE -- | Concatenate regular expressions. -- --
--   r <> empty === empty
--   
-- --
--   empty <>  r === empty
--   
-- --
--   ( r <> s) <> t === r <> (s <> t)
--   
-- --
--   r <> eps === r
--   
-- --
--   eps <>  r === r
--   
appends :: [ERE] -> ERE -- | Union of regular expressions. -- --
--   r \/ r === r
--   
-- --
--   r \/ s === s \/ r
--   
-- --
--   ( r \/ s) \/ t === r \/ (s \/ t)
--   
-- --
--   empty \/  r === r
--   
-- --
--   r \/ empty === r
--   
-- --
--   everything \/  r === everything
--   
-- --
--   r \/ everything === everything
--   
unions :: [ERE] -> ERE -- | Intersection of regular expressions. -- --
--   r /\ r === r
--   
-- --
--   r /\ s === s /\ r
--   
-- --
--   ( r /\ s) /\ t === r /\ (s /\ t)
--   
-- --
--   empty /\  r === empty
--   
-- --
--   r /\ empty === empty
--   
-- --
--   everything /\  r === r
--   
-- --
--   r /\ everything === r
--   
intersections :: [ERE] -> ERE -- | Kleene star. -- --
--   star (star r) === star ( r)
--   
-- --
--   star eps     ===  eps
--   
-- --
--   star empty   ===  eps
--   
-- --
--   star anyChar ===  everything
--   
-- --
--   star (r \/ eps) === star r
--   
-- --
--   star (char c \/ eps) === star (char c)
--   
-- --
--   star (empty \/ eps) === eps
--   
star :: ERE -> ERE -- | Kleene plus -- --
--   plus r = r <> star r
--   
plus :: ERE -> ERE -- | Literal string. string :: [Word8] -> ERE -- | UTF8 string utf8String :: String -> ERE -- | Complement. -- --
--   complement (complement r) ===  r
--   
complement :: ERE -> ERE satisfy :: (Word8 -> Bool) -> ERE digit :: ERE module Sasha.TTH -- | Lexer grammar specification: tag codes and regular expressions. type SaTTH tag = [(Code Q tag, ERE)] -- | Generate a scanner code. satth :: forall tag. SaTTH tag -> Code Q (ByteString -> Maybe (tag, ByteString, ByteString)) -- | Extended regular expression data ERE -- | Empty regex. Doesn't accept anything. -- --
--   match empty s === False
--   
empty :: ERE -- | Empty string. Note: different than empty. -- --
--   match eps s === null s
--   
eps :: ERE -- | Character. char :: Word8 -> ERE -- | Character range. charRange :: Word8 -> Word8 -> ERE -- | UTF8 character, i.e. may match multiple bytes. utf8Char :: Char -> ERE -- | Any character. anyChar :: ERE anyUtf8Char :: ERE -- | Concatenate regular expressions. -- --
--   r <> empty === empty
--   
-- --
--   empty <>  r === empty
--   
-- --
--   ( r <> s) <> t === r <> (s <> t)
--   
-- --
--   r <> eps === r
--   
-- --
--   eps <>  r === r
--   
appends :: [ERE] -> ERE -- | Union of regular expressions. -- --
--   r \/ r === r
--   
-- --
--   r \/ s === s \/ r
--   
-- --
--   ( r \/ s) \/ t === r \/ (s \/ t)
--   
-- --
--   empty \/  r === r
--   
-- --
--   r \/ empty === r
--   
-- --
--   everything \/  r === everything
--   
-- --
--   r \/ everything === everything
--   
unions :: [ERE] -> ERE -- | Intersection of regular expressions. -- --
--   r /\ r === r
--   
-- --
--   r /\ s === s /\ r
--   
-- --
--   ( r /\ s) /\ t === r /\ (s /\ t)
--   
-- --
--   empty /\  r === empty
--   
-- --
--   r /\ empty === empty
--   
-- --
--   everything /\  r === r
--   
-- --
--   r /\ everything === r
--   
intersections :: [ERE] -> ERE -- | Kleene star. -- --
--   star (star r) === star ( r)
--   
-- --
--   star eps     ===  eps
--   
-- --
--   star empty   ===  eps
--   
-- --
--   star anyChar ===  everything
--   
-- --
--   star (r \/ eps) === star r
--   
-- --
--   star (char c \/ eps) === star (char c)
--   
-- --
--   star (empty \/ eps) === eps
--   
star :: ERE -> ERE -- | Kleene plus -- --
--   plus r = r <> star r
--   
plus :: ERE -> ERE -- | Literal string. string :: [Word8] -> ERE -- | UTF8 string utf8String :: String -> ERE -- | Complement. -- --
--   complement (complement r) ===  r
--   
complement :: ERE -> ERE satisfy :: (Word8 -> Bool) -> ERE digit :: ERE instance GHC.Classes.Ord Sasha.TTH.Meas instance GHC.Classes.Eq Sasha.TTH.Meas instance GHC.Show.Show (Sasha.TTH.S tag) instance GHC.Classes.Eq (Sasha.TTH.S tag) instance GHC.Classes.Ord (Sasha.TTH.S tag)