BNFC-meta-0.6.1: Deriving Parsers and Quasi-Quoters from BNF Grammars

Safe HaskellNone
LanguageHaskell98

Language.LBNF.Compiletime

Contents

Description

Contains things needed by BNFC-meta language definitions and by the code generated from those. Typical users don't need to browse this module.

Synopsis

Happy and Alex

data HappyStk a infixr 9 #

Constructors

HappyStk a (HappyStk a) infixr 9 

data Posn Source #

Constructors

Pn !Int !Int !Int 
Instances
Eq Posn Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

(==) :: Posn -> Posn -> Bool #

(/=) :: Posn -> Posn -> Bool #

Ord Posn Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

compare :: Posn -> Posn -> Ordering #

(<) :: Posn -> Posn -> Bool #

(<=) :: Posn -> Posn -> Bool #

(>) :: Posn -> Posn -> Bool #

(>=) :: Posn -> Posn -> Bool #

max :: Posn -> Posn -> Posn #

min :: Posn -> Posn -> Posn #

Show Posn Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

showsPrec :: Int -> Posn -> ShowS #

show :: Posn -> String #

showList :: [Posn] -> ShowS #

ord :: Char -> Int #

The fromEnum method restricted to the type Char.

listArray :: Ix i => (i, i) -> [e] -> Array i e #

Construct an array from a pair of bounds and a list of values in index order.

(!) :: Ix i => Array i e -> i -> e infixl 9 #

The value at the given index in an array.

data Array i e #

The type of immutable non-strict (boxed) arrays with indices in i and elements in e.

Instances
Functor (Array i)

Since: base-2.1

Instance details

Defined in GHC.Arr

Methods

fmap :: (a -> b) -> Array i a -> Array i b #

(<$) :: a -> Array i b -> Array i a #

Foldable (Array i)

Since: base-4.8.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => Array i m -> m #

foldMap :: Monoid m => (a -> m) -> Array i a -> m #

foldr :: (a -> b -> b) -> b -> Array i a -> b #

foldr' :: (a -> b -> b) -> b -> Array i a -> b #

foldl :: (b -> a -> b) -> b -> Array i a -> b #

foldl' :: (b -> a -> b) -> b -> Array i a -> b #

foldr1 :: (a -> a -> a) -> Array i a -> a #

foldl1 :: (a -> a -> a) -> Array i a -> a #

toList :: Array i a -> [a] #

null :: Array i a -> Bool #

length :: Array i a -> Int #

elem :: Eq a => a -> Array i a -> Bool #

maximum :: Ord a => Array i a -> a #

minimum :: Ord a => Array i a -> a #

sum :: Num a => Array i a -> a #

product :: Num a => Array i a -> a #

Ix i => Traversable (Array i)

Since: base-2.1

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> Array i a -> f (Array i b) #

sequenceA :: Applicative f => Array i (f a) -> f (Array i a) #

mapM :: Monad m => (a -> m b) -> Array i a -> m (Array i b) #

sequence :: Monad m => Array i (m a) -> m (Array i a) #

(Ix i, Eq e) => Eq (Array i e)

Since: base-2.1

Instance details

Defined in GHC.Arr

Methods

(==) :: Array i e -> Array i e -> Bool #

(/=) :: Array i e -> Array i e -> Bool #

(Data a, Data b, Ix a) => Data (Array a b)

Since: base-4.8.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Array a b -> c (Array a b) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Array a b) #

toConstr :: Array a b -> Constr #

dataTypeOf :: Array a b -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Array a b)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Array a b)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> Array a b -> Array a b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Array a b -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Array a b -> r #

gmapQ :: (forall d. Data d => d -> u) -> Array a b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Array a b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) #

(Ix i, Ord e) => Ord (Array i e)

Since: base-2.1

Instance details

Defined in GHC.Arr

Methods

compare :: Array i e -> Array i e -> Ordering #

(<) :: Array i e -> Array i e -> Bool #

(<=) :: Array i e -> Array i e -> Bool #

(>) :: Array i e -> Array i e -> Bool #

(>=) :: Array i e -> Array i e -> Bool #

max :: Array i e -> Array i e -> Array i e #

min :: Array i e -> Array i e -> Array i e #

(Ix a, Read a, Read b) => Read (Array a b)

Since: base-2.1

Instance details

Defined in GHC.Read

(Ix a, Show a, Show b) => Show (Array a b)

Since: base-2.1

Instance details

Defined in GHC.Arr

Methods

showsPrec :: Int -> Array a b -> ShowS #

show :: Array a b -> String #

showList :: [Array a b] -> ShowS #

Pretty printing

class Print a where Source #

Minimal complete definition

prt

Methods

prt :: Int -> a -> Doc Source #

prtList :: [a] -> Doc Source #

Instances
Print Char Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

prt :: Int -> Char -> Doc Source #

prtList :: [Char] -> Doc Source #

Print Double Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

prt :: Int -> Double -> Doc Source #

prtList :: [Double] -> Doc Source #

Print Integer Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

prt :: Int -> Integer -> Doc Source #

prtList :: [Integer] -> Doc Source #

Print PrintPlain Source # 
Instance details

Defined in Language.LBNF.Runtime

Print Ident Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Ident -> Doc Source #

prtList :: [Ident] -> Doc Source #

Print Reg Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Reg -> Doc Source #

prtList :: [Reg] -> Doc Source #

Print MinimumSize Source # 
Instance details

Defined in Language.LBNF.Grammar

Print Exp Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Exp -> Doc Source #

prtList :: [Exp] -> Doc Source #

Print Arg Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Arg -> Doc Source #

prtList :: [Arg] -> Doc Source #

Print HsTyp Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> HsTyp -> Doc Source #

prtList :: [HsTyp] -> Doc Source #

Print MIdent Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> MIdent -> Doc Source #

prtList :: [MIdent] -> Doc Source #

Print Label Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Label -> Doc Source #

prtList :: [Label] -> Doc Source #

Print Cat Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Cat -> Doc Source #

prtList :: [Cat] -> Doc Source #

Print Item Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Item -> Doc Source #

prtList :: [Item] -> Doc Source #

Print RHS Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> RHS -> Doc Source #

prtList :: [RHS] -> Doc Source #

Print Def Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Def -> Doc Source #

prtList :: [Def] -> Doc Source #

Print Grammar Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Grammar -> Doc Source #

prtList :: [Grammar] -> Doc Source #

Print a => Print [a] Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

prt :: Int -> [a] -> Doc Source #

prtList :: [[a]] -> Doc Source #

prPrec :: Int -> Int -> Doc -> Doc Source #

newtype PrintPlain Source #

Constructors

MkPrintPlain String 
Instances
Print PrintPlain Source # 
Instance details

Defined in Language.LBNF.Runtime

Quasi quoting

data ParseMonad a Source #

Constructors

Ok a 
Bad String 
Instances
Monad ParseMonad Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

(>>=) :: ParseMonad a -> (a -> ParseMonad b) -> ParseMonad b #

(>>) :: ParseMonad a -> ParseMonad b -> ParseMonad b #

return :: a -> ParseMonad a #

fail :: String -> ParseMonad a #

Functor ParseMonad Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

fmap :: (a -> b) -> ParseMonad a -> ParseMonad b #

(<$) :: a -> ParseMonad b -> ParseMonad a #

MonadFail ParseMonad Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

fail :: String -> ParseMonad a #

Applicative ParseMonad Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

pure :: a -> ParseMonad a #

(<*>) :: ParseMonad (a -> b) -> ParseMonad a -> ParseMonad b #

liftA2 :: (a -> b -> c) -> ParseMonad a -> ParseMonad b -> ParseMonad c #

(*>) :: ParseMonad a -> ParseMonad b -> ParseMonad b #

(<*) :: ParseMonad a -> ParseMonad b -> ParseMonad a #

Eq a => Eq (ParseMonad a) Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

(==) :: ParseMonad a -> ParseMonad a -> Bool #

(/=) :: ParseMonad a -> ParseMonad a -> Bool #

Ord a => Ord (ParseMonad a) Source # 
Instance details

Defined in Language.LBNF.Runtime

Read a => Read (ParseMonad a) Source # 
Instance details

Defined in Language.LBNF.Runtime

Show a => Show (ParseMonad a) Source # 
Instance details

Defined in Language.LBNF.Runtime

errq :: (String -> a) -> ParseMonad a -> Q a Source #

data Q a #

Instances
Monad Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(>>=) :: Q a -> (a -> Q b) -> Q b #

(>>) :: Q a -> Q b -> Q b #

return :: a -> Q a #

fail :: String -> Q a #

Functor Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

fmap :: (a -> b) -> Q a -> Q b #

(<$) :: a -> Q b -> Q a #

MonadFail Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

fail :: String -> Q a #

Applicative Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

pure :: a -> Q a #

(<*>) :: Q (a -> b) -> Q a -> Q b #

liftA2 :: (a -> b -> c) -> Q a -> Q b -> Q c #

(*>) :: Q a -> Q b -> Q b #

(<*) :: Q a -> Q b -> Q a #

MonadIO Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

liftIO :: IO a -> Q a #

Quasi Q 
Instance details

Defined in Language.Haskell.TH.Syntax

class Lift t where #

A Lift instance can have any of its values turned into a Template Haskell expression. This is needed when a value used within a Template Haskell quotation is bound outside the Oxford brackets ([| ... |]) but not at the top level. As an example:

add1 :: Int -> Q Exp
add1 x = [| x + 1 |]

Template Haskell has no way of knowing what value x will take on at splice-time, so it requires the type of x to be an instance of Lift.

A Lift instance must satisfy $(lift x) ≡ x for all x, where $(...) is a Template Haskell splice.

Lift instances can be derived automatically by use of the -XDeriveLift GHC language extension:

{-# LANGUAGE DeriveLift #-}
module Foo where

import Language.Haskell.TH.Syntax

data Bar a = Bar1 a (Bar a) | Bar2 String
  deriving Lift

Minimal complete definition

Nothing

Methods

lift :: t -> Q Exp #

Turn a value into a Template Haskell expression, suitable for use in a splice.

Instances
Lift Bool 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Bool -> Q Exp #

Lift Char 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Char -> Q Exp #

Lift Double 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Double -> Q Exp #

Lift Float 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Float -> Q Exp #

Lift Int 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Int -> Q Exp #

Lift Int8 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Int8 -> Q Exp #

Lift Int16 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Int16 -> Q Exp #

Lift Int32 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Int32 -> Q Exp #

Lift Int64 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Int64 -> Q Exp #

Lift Integer 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Integer -> Q Exp #

Lift Natural 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Natural -> Q Exp #

Lift Word 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Word -> Q Exp #

Lift Word8 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Word8 -> Q Exp #

Lift Word16 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Word16 -> Q Exp #

Lift Word32 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Word32 -> Q Exp #

Lift Word64 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Word64 -> Q Exp #

Lift () 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: () -> Q Exp #

Lift a => Lift [a] 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: [a] -> Q Exp #

Lift a => Lift (Maybe a) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Maybe a -> Q Exp #

Integral a => Lift (Ratio a) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Ratio a -> Q Exp #

(Lift a, Lift b) => Lift (Either a b) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: Either a b -> Q Exp #

(Lift a, Lift b) => Lift (a, b) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: (a, b) -> Q Exp #

(Lift a, Lift b, Lift c) => Lift (a, b, c) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: (a, b, c) -> Q Exp #

(Lift a, Lift b, Lift c, Lift d) => Lift (a, b, c, d) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: (a, b, c, d) -> Q Exp #

(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (a, b, c, d, e) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: (a, b, c, d, e) -> Q Exp #

(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (a, b, c, d, e, f) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: (a, b, c, d, e, f) -> Q Exp #

(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (a, b, c, d, e, f, g) 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

lift :: (a, b, c, d, e, f, g) -> Q Exp #

class Literal a where Source #

Methods

lit :: a -> Lit Source #

Instances
Literal Char Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

lit :: Char -> Lit Source #

Literal Double Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

lit :: Double -> Lit Source #

Literal Integer Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

lit :: Integer -> Lit Source #

IsChar a => Literal [a] Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

lit :: [a] -> Lit Source #

class IsChar a where Source #

Methods

toChar :: a -> Char Source #

Instances
IsChar Char Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

toChar :: Char -> Char Source #

Helper functions for defining Anti-quotation