mirror of
https://github.com/Airsequel/AirGQL.git
synced 2025-07-12 17:54:54 +03:00
30 lines
802 B
Haskell
30 lines
802 B
Haskell
{-# OPTIONS_GHC -Wno-deprecations #-}
|
|
|
|
module AirGQL.Raw (raw) where
|
|
|
|
import Protolude (pure, (.))
|
|
import Protolude.Error (error)
|
|
|
|
import Language.Haskell.TH (Exp (LitE), Lit (StringL))
|
|
import Language.Haskell.TH.Quote (
|
|
QuasiQuoter (QuasiQuoter, quoteDec, quoteExp, quotePat, quoteType),
|
|
)
|
|
|
|
|
|
raw :: QuasiQuoter
|
|
raw =
|
|
QuasiQuoter
|
|
{ quoteExp = pure . LitE . StringL
|
|
, quotePat = \_ ->
|
|
error
|
|
"Illegal raw string QuasiQuote \
|
|
\(allowed as expression only, used as a pattern)"
|
|
, quoteType = \_ ->
|
|
error
|
|
"Illegal raw string QuasiQuote \
|
|
\(allowed as expression only, used as a type)"
|
|
, quoteDec = \_ ->
|
|
error
|
|
"Illegal raw string QuasiQuote \
|
|
\(allowed as expression only, used as a declaration)"
|
|
}
|