module Language.Haskell.GHC.ExactPrint.Lookup
(
keywordToString
, KeywordId(..)
, Comment(..)
) where
import GHC (AnnKeywordId(..))
import Language.Haskell.GHC.ExactPrint.Types
keywordToString :: KeywordId -> String
keywordToString :: KeywordId -> String
keywordToString KeywordId
kw =
let mkErr :: a -> a
mkErr a
x = String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ String
"keywordToString: missing case for:" String -> String -> String
forall a. [a] -> [a] -> [a]
++ a -> String
forall a. Show a => a -> String
show a
x
in
case KeywordId
kw of
AnnComment Comment
_ -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
AnnString String
_ -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
KeywordId
AnnSemiSep -> String
";"
(G AnnKeywordId
AnnAnyclass) -> String
"anyclass"
(G AnnKeywordId
AnnOpen ) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnClose ) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnVal ) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnPackageName) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnHeader ) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnFunId ) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnInfix ) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnValStr ) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnName ) -> KeywordId -> String
forall {a} {a}. Show a => a -> a
mkErr KeywordId
kw
(G AnnKeywordId
AnnAs ) -> String
"as"
(G AnnKeywordId
AnnAt ) -> String
"@"
(G AnnKeywordId
AnnBang ) -> String
"!"
(G AnnKeywordId
AnnBackquote ) -> String
"`"
(G AnnKeywordId
AnnBy ) -> String
"by"
(G AnnKeywordId
AnnCase ) -> String
"case"
(G AnnKeywordId
AnnClass ) -> String
"class"
(G AnnKeywordId
AnnCloseB ) -> String
"|)"
(G AnnKeywordId
AnnCloseBU ) -> String
"⦈"
(G AnnKeywordId
AnnCloseC ) -> String
"}"
(G AnnKeywordId
AnnCloseP ) -> String
")"
(G AnnKeywordId
AnnClosePH ) -> String
"#)"
(G AnnKeywordId
AnnCloseQ ) -> String
"|]"
(G AnnKeywordId
AnnCloseQU ) -> String
"⟧"
(G AnnKeywordId
AnnCloseS ) -> String
"]"
(G AnnKeywordId
AnnColon ) -> String
":"
(G AnnKeywordId
AnnComma ) -> String
","
(G AnnKeywordId
AnnCommaTuple ) -> String
","
(G AnnKeywordId
AnnDarrow ) -> String
"=>"
(G AnnKeywordId
AnnData ) -> String
"data"
(G AnnKeywordId
AnnDcolon ) -> String
"::"
(G AnnKeywordId
AnnDefault ) -> String
"default"
(G AnnKeywordId
AnnDeriving ) -> String
"deriving"
(G AnnKeywordId
AnnDo ) -> String
"do"
(G AnnKeywordId
AnnDot ) -> String
"."
(G AnnKeywordId
AnnDotdot ) -> String
".."
(G AnnKeywordId
AnnElse ) -> String
"else"
(G AnnKeywordId
AnnEqual ) -> String
"="
(G AnnKeywordId
AnnExport ) -> String
"export"
(G AnnKeywordId
AnnFamily ) -> String
"family"
(G AnnKeywordId
AnnForall ) -> String
"forall"
(G AnnKeywordId
AnnForeign ) -> String
"foreign"
(G AnnKeywordId
AnnGroup ) -> String
"group"
(G AnnKeywordId
AnnHiding ) -> String
"hiding"
(G AnnKeywordId
AnnIf ) -> String
"if"
(G AnnKeywordId
AnnImport ) -> String
"import"
(G AnnKeywordId
AnnIn ) -> String
"in"
(G AnnKeywordId
AnnInstance ) -> String
"instance"
(G AnnKeywordId
AnnLam ) -> String
"\\"
(G AnnKeywordId
AnnLarrow ) -> String
"<-"
(G AnnKeywordId
AnnLet ) -> String
"let"
(G AnnKeywordId
AnnLollyU ) -> String
"⊸"
(G AnnKeywordId
AnnMdo ) -> String
"mdo"
(G AnnKeywordId
AnnMinus ) -> String
"-"
(G AnnKeywordId
AnnModule ) -> String
"module"
(G AnnKeywordId
AnnNewtype ) -> String
"newtype"
(G AnnKeywordId
AnnOf ) -> String
"of"
(G AnnKeywordId
AnnOpenB ) -> String
"(|"
(G AnnKeywordId
AnnOpenBU ) -> String
"⦇"
(G AnnKeywordId
AnnOpenC ) -> String
"{"
(G AnnKeywordId
AnnOpenE ) -> String
"[e|"
(G AnnKeywordId
AnnOpenEQ ) -> String
"[|"
(G AnnKeywordId
AnnOpenEQU ) -> String
"⟦"
(G AnnKeywordId
AnnOpenP ) -> String
"("
(G AnnKeywordId
AnnOpenPH ) -> String
"(#"
(G AnnKeywordId
AnnOpenS ) -> String
"["
(G AnnKeywordId
AnnPattern ) -> String
"pattern"
(G AnnKeywordId
AnnPercent ) -> String
"%"
(G AnnKeywordId
AnnPercentOne) -> String
"%1"
(G AnnKeywordId
AnnProc ) -> String
"proc"
(G AnnKeywordId
AnnQualified ) -> String
"qualified"
(G AnnKeywordId
AnnRarrow ) -> String
"->"
(G AnnKeywordId
AnnRec ) -> String
"rec"
(G AnnKeywordId
AnnRole ) -> String
"role"
(G AnnKeywordId
AnnSafe ) -> String
"safe"
(G AnnKeywordId
AnnSemi ) -> String
";"
(G AnnKeywordId
AnnSignature) -> String
"signature"
(G AnnKeywordId
AnnStock ) -> String
"stock"
(G AnnKeywordId
AnnStatic ) -> String
"static"
(G AnnKeywordId
AnnThen ) -> String
"then"
(G AnnKeywordId
AnnTilde ) -> String
"~"
(G AnnKeywordId
AnnType ) -> String
"type"
(G AnnKeywordId
AnnUnit ) -> String
"()"
(G AnnKeywordId
AnnUsing ) -> String
"using"
(G AnnKeywordId
AnnVbar ) -> String
"|"
(G AnnKeywordId
AnnWhere ) -> String
"where"
(G AnnKeywordId
Annlarrowtail ) -> String
"-<"
(G AnnKeywordId
Annrarrowtail ) -> String
">-"
(G AnnKeywordId
AnnLarrowtail ) -> String
"-<<"
(G AnnKeywordId
AnnRarrowtail ) -> String
">>-"
(G AnnKeywordId
AnnSimpleQuote ) -> String
"'"
(G AnnKeywordId
AnnThTyQuote ) -> String
"''"
(G AnnKeywordId
AnnDollar ) -> String
"$"
(G AnnKeywordId
AnnDollarDollar ) -> String
"$$"
(G AnnKeywordId
AnnDarrowU) -> String
"⇒"
(G AnnKeywordId
AnnDcolonU) -> String
"∷"
(G AnnKeywordId
AnnForallU) -> String
"∀"
(G AnnKeywordId
AnnLarrowU) -> String
"←"
(G AnnKeywordId
AnnLarrowtailU) -> String
"⤛"
(G AnnKeywordId
AnnRarrowU) -> String
"→"
(G AnnKeywordId
AnnRarrowtailU) -> String
"⤜"
(G AnnKeywordId
AnnlarrowtailU) -> String
"⤙"
(G AnnKeywordId
AnnrarrowtailU) -> String
"⤚"
KeywordId
AnnTypeApp -> String
"@"
(G AnnKeywordId
AnnVia) -> String
"via"