-- | 'QuasiQuoter' for BNF source. module Data.Cfg.Bnf.QQ(bnf) where import Data.Cfg.Bnf.Parser import Language.Haskell.TH.Quote -- | 'QuasiQuoter' for BNF source. Generates a value of type -- 'Grammar'. Not usable in pattern, type or declaration positions. bnf :: QuasiQuoter bnf = QuasiQuoter { quoteExp = dataToExpQ (const Nothing) . parse, quotePat = err, quoteType = err, quoteDec = err } where err _ = error "The bnf quasiquoter is only allowed in Exp position."