Copyright | (c) [1995..1999] Manuel M. T. Chakravarty (c) 2008 Benedikt Huber |
---|---|
License | BSD-style |
Maintainer | benedikt.huber@gmail.com |
Stability | experimental |
Portability | ghc |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- data Ident = Ident String !Int NodeInfo
- data SUERef
- isAnonymousRef :: SUERef -> Bool
- mkIdent :: Position -> String -> Name -> Ident
- builtinIdent :: String -> Ident
- internalIdent :: String -> Ident
- internalIdentAt :: Position -> String -> Ident
- isInternalIdent :: Ident -> Bool
- identToString :: Ident -> String
- sueRefToString :: SUERef -> String
- dumpIdent :: Ident -> String
Documentation
C identifiers
Instances
Data Ident Source # | |
Defined in Language.C.Data.Ident gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ident -> c Ident # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Ident # dataTypeOf :: Ident -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Ident) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Ident) # gmapT :: (forall b. Data b => b -> b) -> Ident -> Ident # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ident -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ident -> r # gmapQ :: (forall d. Data d => d -> u) -> Ident -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Ident -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ident -> m Ident # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ident -> m Ident # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ident -> m Ident # | |
Generic Ident Source # | |
Show Ident Source # | |
NFData Ident Source # | |
Defined in Language.C.Data.Ident | |
Eq Ident Source # | |
Ord Ident Source # | |
CNode Ident Source # | |
Pos Ident Source # | |
Pretty Ident Source # | |
type Rep Ident Source # | |
Defined in Language.C.Data.Ident type Rep Ident = D1 ('MetaData "Ident" "Language.C.Data.Ident" "language-c-0.9.4-9yWFXod72jo4EfM9VWrwhH" 'False) (C1 ('MetaCons "Ident" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NodeInfo)))) |
References uniquely determining a struct, union or enum type. Those are either identified by an string identifier, or by a unique name (anonymous types).
Instances
Data SUERef Source # | |
Defined in Language.C.Data.Ident gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SUERef -> c SUERef # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SUERef # toConstr :: SUERef -> Constr # dataTypeOf :: SUERef -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SUERef) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SUERef) # gmapT :: (forall b. Data b => b -> b) -> SUERef -> SUERef # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SUERef -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SUERef -> r # gmapQ :: (forall d. Data d => d -> u) -> SUERef -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SUERef -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SUERef -> m SUERef # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SUERef -> m SUERef # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SUERef -> m SUERef # | |
Generic SUERef Source # | |
Show SUERef Source # | |
NFData SUERef Source # | |
Defined in Language.C.Data.Ident | |
Eq SUERef Source # | |
Ord SUERef Source # | |
Pretty SUERef Source # | |
type Rep SUERef Source # | |
Defined in Language.C.Data.Ident type Rep SUERef = D1 ('MetaData "SUERef" "Language.C.Data.Ident" "language-c-0.9.4-9yWFXod72jo4EfM9VWrwhH" 'False) (C1 ('MetaCons "AnonymousRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "NamedRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident))) |
isAnonymousRef :: SUERef -> Bool Source #
Return true if the struct/union/enum reference is anonymous.
mkIdent :: Position -> String -> Name -> Ident Source #
build an identifier from a string.
- only minimal error checking, e.g., the characters of the identifier are not checked for being alphanumerical only; the correct lexis of the identifier should be ensured by the caller, e.g., the scanner.
- for reasons of simplicity the complete lexeme is hashed.
builtinIdent :: String -> Ident Source #
returns a builtin identifier (has builtin position and no unique name)
internalIdent :: String -> Ident Source #
returns an internal identifier (has internal position and no unique name)
internalIdentAt :: Position -> String -> Ident Source #
return an internal identifier with position info
isInternalIdent :: Ident -> Bool Source #
return True
if the given identifier is internal
identToString :: Ident -> String Source #
string of an identifier
sueRefToString :: SUERef -> String Source #
string of a SUE ref (empty if anonymous)