{-# LANGUAGE CPP #-}
#include "ghclib_api.h"
module Language.Haskell.GhclibParserEx.GHC.Types.Name.Reader(
occNameStr, rdrNameStr, isSpecial, unqual, fromQual, isSymbolRdrName
)
where
#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_902)
import GHC.Parser.Annotation
#endif
#if defined (GHCLIB_API_HEAD) || defined(GHCLIB_API_902) || defined (GHCLIB_API_900)
import GHC.Types.SrcLoc
import GHC.Types.Name
import GHC.Types.Name.Reader
#else
import SrcLoc
import RdrName
import OccName
import Name
#endif
occNameStr :: RdrName -> String; occNameStr :: RdrName -> String
occNameStr = OccName -> String
occNameString (OccName -> String) -> (RdrName -> OccName) -> RdrName -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RdrName -> OccName
rdrNameOcc
#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_902)
rdrNameStr :: GHC.Parser.Annotation.LocatedN RdrName -> String
#else
rdrNameStr :: Located RdrName -> String
#endif
rdrNameStr :: Located RdrName -> String
rdrNameStr = RdrName -> String
occNameStr (RdrName -> String)
-> (Located RdrName -> RdrName) -> Located RdrName -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Located RdrName -> RdrName
forall l e. GenLocated l e -> e
unLoc
#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_902)
isSpecial :: LocatedN RdrName -> Bool
#else
isSpecial :: Located RdrName -> Bool
#endif
isSpecial :: Located RdrName -> Bool
isSpecial (L SrcSpan
_ (Exact Name
n)) = Name -> Bool
isDataConName Name
n Bool -> Bool -> Bool
|| Name -> Bool
isTyConName Name
n
isSpecial Located RdrName
_ = Bool
False
#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_902)
unqual :: LocatedN RdrName -> LocatedN RdrName
#else
unqual :: Located RdrName -> Located RdrName
#endif
unqual :: Located RdrName -> Located RdrName
unqual (L SrcSpan
loc (Qual ModuleName
_ OccName
n)) = SrcSpan -> RdrName -> Located RdrName
forall l e. l -> e -> GenLocated l e
L SrcSpan
loc (RdrName -> Located RdrName) -> RdrName -> Located RdrName
forall a b. (a -> b) -> a -> b
$ OccName -> RdrName
mkRdrUnqual OccName
n
unqual Located RdrName
x = Located RdrName
x
#if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_902)
fromQual :: LocatedN RdrName -> Maybe OccName
#else
fromQual :: Located RdrName -> Maybe OccName
#endif
fromQual :: Located RdrName -> Maybe OccName
fromQual (L SrcSpan
_ (Qual ModuleName
_ OccName
x)) = OccName -> Maybe OccName
forall a. a -> Maybe a
Just OccName
x
fromQual (L SrcSpan
_ (Unqual OccName
x)) = OccName -> Maybe OccName
forall a. a -> Maybe a
Just OccName
x
fromQual Located RdrName
_ = Maybe OccName
forall a. Maybe a
Nothing
isSymbolRdrName :: RdrName -> Bool
isSymbolRdrName :: RdrName -> Bool
isSymbolRdrName = OccName -> Bool
isSymOcc (OccName -> Bool) -> (RdrName -> OccName) -> RdrName -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RdrName -> OccName
rdrNameOcc