language-c-0.8.2: Analysis and generation of C code

Copyright(c) 2008 Benedikt Huber
LicenseBSD-style
Maintainerbenedikt.huber@gmail.com
Stabilityexperimental
Portabilityghc
Safe HaskellNone
LanguageHaskell98

Language.C.Data

Contents

Description

Common data types for Language.C: Identifiers, unique names, source code locations, ast node attributes and extensible errors.

Synopsis

Input stream

Identifiers

data SUERef #

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
Eq SUERef # 
Instance details

Defined in Language.C.Data.Ident

Methods

(==) :: SUERef -> SUERef -> Bool #

(/=) :: SUERef -> SUERef -> Bool #

Data SUERef # 
Instance details

Defined in Language.C.Data.Ident

Methods

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 :: (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 #

Ord SUERef # 
Instance details

Defined in Language.C.Data.Ident

Show SUERef # 
Instance details

Defined in Language.C.Data.Ident

Generic SUERef # 
Instance details

Defined in Language.C.Data.Ident

Associated Types

type Rep SUERef :: Type -> Type #

Methods

from :: SUERef -> Rep SUERef x #

to :: Rep SUERef x -> SUERef #

NFData SUERef # 
Instance details

Defined in Language.C.Data.Ident

Methods

rnf :: SUERef -> () #

Pretty SUERef # 
Instance details

Defined in Language.C.Analysis.Debug

Methods

pretty :: SUERef -> Doc #

prettyPrec :: Int -> SUERef -> Doc #

type Rep SUERef # 
Instance details

Defined in Language.C.Data.Ident

type Rep SUERef = D1 (MetaData "SUERef" "Language.C.Data.Ident" "language-c-0.8.2-KO6GGy0fbH5KZxtBHfA7kD" 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 #

Return true if the struct/union/enum reference is anonymous.

sueRefToString :: SUERef -> String #

string of a SUE ref (empty if anonymous)

data Ident #

C identifiers

Instances
Eq Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

(==) :: Ident -> Ident -> Bool #

(/=) :: Ident -> Ident -> Bool #

Data Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

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 #

toConstr :: Ident -> Constr #

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 :: (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 #

Ord Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

compare :: Ident -> Ident -> Ordering #

(<) :: Ident -> Ident -> Bool #

(<=) :: Ident -> Ident -> Bool #

(>) :: Ident -> Ident -> Bool #

(>=) :: Ident -> Ident -> Bool #

max :: Ident -> Ident -> Ident #

min :: Ident -> Ident -> Ident #

Show Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

showsPrec :: Int -> Ident -> ShowS #

show :: Ident -> String #

showList :: [Ident] -> ShowS #

Generic Ident # 
Instance details

Defined in Language.C.Data.Ident

Associated Types

type Rep Ident :: Type -> Type #

Methods

from :: Ident -> Rep Ident x #

to :: Rep Ident x -> Ident #

NFData Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

rnf :: Ident -> () #

Pos Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

posOf :: Ident -> Position #

CNode Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

nodeInfo :: Ident -> NodeInfo #

Pretty Ident # 
Instance details

Defined in Language.C.Analysis.Debug

Methods

pretty :: Ident -> Doc #

prettyPrec :: Int -> Ident -> Doc #

type Rep Ident # 
Instance details

Defined in Language.C.Data.Ident

mkIdent :: Position -> String -> Name -> Ident #

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.

identToString :: Ident -> String #

string of an identifier

internalIdent :: String -> Ident #

returns an internal identifier (has internal position and no unique name)

isInternalIdent :: Ident -> Bool #

return True if the given identifier is internal

builtinIdent :: String -> Ident #

returns a builtin identifier (has builtin position and no unique name)

Unqiue names

newtype Name #

Name is a unique identifier

Constructors

Name 

Fields

Instances
Enum Name # 
Instance details

Defined in Language.C.Data.Name

Methods

succ :: Name -> Name #

pred :: Name -> Name #

toEnum :: Int -> Name #

fromEnum :: Name -> Int #

enumFrom :: Name -> [Name] #

enumFromThen :: Name -> Name -> [Name] #

enumFromTo :: Name -> Name -> [Name] #

enumFromThenTo :: Name -> Name -> Name -> [Name] #

Eq Name # 
Instance details

Defined in Language.C.Data.Name

Methods

(==) :: Name -> Name -> Bool #

(/=) :: Name -> Name -> Bool #

Data Name # 
Instance details

Defined in Language.C.Data.Name

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name #

toConstr :: Name -> Constr #

dataTypeOf :: Name -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) #

gmapT :: (forall b. Data b => b -> b) -> Name -> Name #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r #

gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name #

Ord Name # 
Instance details

Defined in Language.C.Data.Name

Methods

compare :: Name -> Name -> Ordering #

(<) :: Name -> Name -> Bool #

(<=) :: Name -> Name -> Bool #

(>) :: Name -> Name -> Bool #

(>=) :: Name -> Name -> Bool #

max :: Name -> Name -> Name #

min :: Name -> Name -> Name #

Read Name # 
Instance details

Defined in Language.C.Data.Name

Show Name # 
Instance details

Defined in Language.C.Data.Name

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

Ix Name # 
Instance details

Defined in Language.C.Data.Name

Methods

range :: (Name, Name) -> [Name] #

index :: (Name, Name) -> Name -> Int #

unsafeIndex :: (Name, Name) -> Name -> Int

inRange :: (Name, Name) -> Name -> Bool #

rangeSize :: (Name, Name) -> Int #

unsafeRangeSize :: (Name, Name) -> Int

Generic Name # 
Instance details

Defined in Language.C.Data.Name

Associated Types

type Rep Name :: Type -> Type #

Methods

from :: Name -> Rep Name x #

to :: Rep Name x -> Name #

NFData Name # 
Instance details

Defined in Language.C.Data.Name

Methods

rnf :: Name -> () #

type Rep Name # 
Instance details

Defined in Language.C.Data.Name

type Rep Name = D1 (MetaData "Name" "Language.C.Data.Name" "language-c-0.8.2-KO6GGy0fbH5KZxtBHfA7kD" True) (C1 (MetaCons "Name" PrefixI True) (S1 (MetaSel (Just "nameId") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))

newNameSupply :: [Name] #

return an infinite stream of Names starting with nameId 0

Source code positions

data Position #

uniform representation of source file positions

Instances
Eq Position # 
Instance details

Defined in Language.C.Data.Position

Data Position # 
Instance details

Defined in Language.C.Data.Position

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Position -> c Position #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Position #

toConstr :: Position -> Constr #

dataTypeOf :: Position -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Position) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Position) #

gmapT :: (forall b. Data b => b -> b) -> Position -> Position #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Position -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Position -> r #

gmapQ :: (forall d. Data d => d -> u) -> Position -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Position -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Position -> m Position #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Position -> m Position #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Position -> m Position #

Ord Position # 
Instance details

Defined in Language.C.Data.Position

Show Position # 
Instance details

Defined in Language.C.Data.Position

Generic Position # 
Instance details

Defined in Language.C.Data.Position

Associated Types

type Rep Position :: Type -> Type #

Methods

from :: Position -> Rep Position x #

to :: Rep Position x -> Position #

NFData Position # 
Instance details

Defined in Language.C.Data.Position

Methods

rnf :: Position -> () #

type Rep Position # 
Instance details

Defined in Language.C.Data.Position

class Pos a where #

class of type which aggregate a source code location

Methods

posOf :: a -> Position #

Instances
Pos NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Methods

posOf :: NodeInfo -> Position #

Pos Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

posOf :: Ident -> Position #

Pos Attr # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: Attr -> Position #

Pos Enumerator # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: Enumerator -> Position #

Pos EnumType # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: EnumType -> Position #

Pos CompType # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: CompType -> Position #

Pos EnumTypeRef # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos CompTypeRef # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos TypeDefRef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: TypeDefRef -> Position #

Pos TypeDef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: TypeDef -> Position #

Pos MemberDecl # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: MemberDecl -> Position #

Pos ParamDecl # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: ParamDecl -> Position #

Pos FunDef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: FunDef -> Position #

Pos ObjDef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: ObjDef -> Position #

Pos Decl # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: Decl -> Position #

Pos DeclEvent # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: DeclEvent -> Position #

Pos IdentDecl # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: IdentDecl -> Position #

Pos TagDef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: TagDef -> Position #

Pos a => Pos [a] # 
Instance details

Defined in Language.C.Parser.Parser

Methods

posOf :: [a] -> Position #

CNode t1 => Pos (CStringLiteral t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CStringLiteral t1 -> Position #

CNode t1 => Pos (CConstant t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CConstant t1 -> Position #

CNode t1 => Pos (CBuiltinThing t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CBuiltinThing t1 -> Position #

CNode t1 => Pos (CExpression t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CExpression t1 -> Position #

CNode t1 => Pos (CAttribute t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CAttribute t1 -> Position #

CNode t1 => Pos (CPartDesignator t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CInitializer t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CInitializer t1 -> Position #

CNode t1 => Pos (CEnumeration t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CEnumeration t1 -> Position #

CNode t1 => Pos (CStructureUnion t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CAlignmentSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CFunctionSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CTypeQualifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CTypeQualifier t1 -> Position #

CNode t1 => Pos (CTypeSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CTypeSpecifier t1 -> Position #

CNode t1 => Pos (CStorageSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CDeclarationSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CCompoundBlockItem t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CAssemblyOperand t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CAssemblyStatement t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CStatement t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CStatement t1 -> Position #

CNode t1 => Pos (CDerivedDeclarator t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CDeclarator t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CDeclarator t1 -> Position #

CNode t1 => Pos (CDeclaration t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CDeclaration t1 -> Position #

CNode t1 => Pos (CFunctionDef t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

posOf :: CFunctionDef t1 -> Position #

CNode t1 => Pos (CExternalDeclaration t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => Pos (CTranslationUnit t1) # 
Instance details

Defined in Language.C.Syntax.AST

initPos :: FilePath -> Position #

initialize a Position to the start of the translation unit starting in the given file

nopos :: Position #

no position (for unknown position information)

builtinPos :: Position #

position attached to built-in objects

internalPos :: Position #

position used for internal errors

isSourcePos :: Position -> Bool #

returns True if the given position refers to an actual source file

isBuiltinPos :: Position -> Bool #

returns True if the given position refers to a builtin definition

isInternalPos :: Position -> Bool #

returns True if the given position is internal

Syntax tree nodes

data NodeInfo #

Parsed entity attribute

Instances
Eq NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Data NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NodeInfo -> c NodeInfo #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NodeInfo #

toConstr :: NodeInfo -> Constr #

dataTypeOf :: NodeInfo -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NodeInfo) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NodeInfo) #

gmapT :: (forall b. Data b => b -> b) -> NodeInfo -> NodeInfo #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NodeInfo -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NodeInfo -> r #

gmapQ :: (forall d. Data d => d -> u) -> NodeInfo -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NodeInfo -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NodeInfo -> m NodeInfo #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NodeInfo -> m NodeInfo #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NodeInfo -> m NodeInfo #

Ord NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Show NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Generic NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Associated Types

type Rep NodeInfo :: Type -> Type #

Methods

from :: NodeInfo -> Rep NodeInfo x #

to :: Rep NodeInfo x -> NodeInfo #

NFData NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Methods

rnf :: NodeInfo -> () #

Pos NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Methods

posOf :: NodeInfo -> Position #

CNode NodeInfo # 
Instance details

Defined in Language.C.Data.Node

Pretty CStrLit # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CStrLit -> Doc #

prettyPrec :: Int -> CStrLit -> Doc #

Pretty CConst # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CConst -> Doc #

prettyPrec :: Int -> CConst -> Doc #

Pretty CBuiltin # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CBuiltin -> Doc #

prettyPrec :: Int -> CBuiltin -> Doc #

Pretty CExpr # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CExpr -> Doc #

prettyPrec :: Int -> CExpr -> Doc #

Pretty CAttr # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CAttr -> Doc #

prettyPrec :: Int -> CAttr -> Doc #

Pretty CDesignator # 
Instance details

Defined in Language.C.Pretty

Pretty CInit # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CInit -> Doc #

prettyPrec :: Int -> CInit -> Doc #

Pretty CEnum # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CEnum -> Doc #

prettyPrec :: Int -> CEnum -> Doc #

Pretty CStructUnion # 
Instance details

Defined in Language.C.Pretty

Pretty CAlignSpec # 
Instance details

Defined in Language.C.Pretty

Pretty CFunSpec # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CFunSpec -> Doc #

prettyPrec :: Int -> CFunSpec -> Doc #

Pretty CTypeQual # 
Instance details

Defined in Language.C.Pretty

Pretty CTypeSpec # 
Instance details

Defined in Language.C.Pretty

Pretty CStorageSpec # 
Instance details

Defined in Language.C.Pretty

Pretty CDeclSpec # 
Instance details

Defined in Language.C.Pretty

Pretty CBlockItem # 
Instance details

Defined in Language.C.Pretty

Pretty CAsmOperand # 
Instance details

Defined in Language.C.Pretty

Pretty CAsmStmt # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CAsmStmt -> Doc #

prettyPrec :: Int -> CAsmStmt -> Doc #

Pretty CStat # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CStat -> Doc #

prettyPrec :: Int -> CStat -> Doc #

Pretty CArrSize # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CArrSize -> Doc #

prettyPrec :: Int -> CArrSize -> Doc #

Pretty CDeclr # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CDeclr -> Doc #

prettyPrec :: Int -> CDeclr -> Doc #

Pretty CDecl # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CDecl -> Doc #

prettyPrec :: Int -> CDecl -> Doc #

Pretty CFunDef # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CFunDef -> Doc #

prettyPrec :: Int -> CFunDef -> Doc #

Pretty CExtDecl # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CExtDecl -> Doc #

prettyPrec :: Int -> CExtDecl -> Doc #

Pretty CTranslUnit # 
Instance details

Defined in Language.C.Pretty

type Rep NodeInfo # 
Instance details

Defined in Language.C.Data.Node

class CNode a where #

a class for convenient access to the attributes of an attributed object

Methods

nodeInfo :: a -> NodeInfo #

Instances
CNode NodeInfo # 
Instance details

Defined in Language.C.Data.Node

CNode Ident # 
Instance details

Defined in Language.C.Data.Ident

Methods

nodeInfo :: Ident -> NodeInfo #

CNode Attr # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

nodeInfo :: Attr -> NodeInfo #

CNode Enumerator # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode EnumType # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode CompType # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode EnumTypeRef # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode CompTypeRef # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode TypeDefRef # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode TypeDef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

nodeInfo :: TypeDef -> NodeInfo #

CNode MemberDecl # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode ParamDecl # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode FunDef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

nodeInfo :: FunDef -> NodeInfo #

CNode ObjDef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

nodeInfo :: ObjDef -> NodeInfo #

CNode Decl # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

nodeInfo :: Decl -> NodeInfo #

CNode DeclEvent # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode IdentDecl # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode TagDef # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

nodeInfo :: TagDef -> NodeInfo #

CNode TagFwdDecl # 
Instance details

Defined in Language.C.Analysis.DefTable

CNode t1 => CNode (CStringLiteral t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CConstant t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

nodeInfo :: CConstant t1 -> NodeInfo #

CNode t1 => CNode (CBuiltinThing t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CExpression t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

nodeInfo :: CExpression t1 -> NodeInfo #

CNode t1 => CNode (CAttribute t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

nodeInfo :: CAttribute t1 -> NodeInfo #

CNode t1 => CNode (CPartDesignator t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CInitializer t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CEnumeration t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CStructureUnion t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CAlignmentSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CFunctionSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CTypeQualifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CTypeSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CStorageSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CDeclarationSpecifier t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CCompoundBlockItem t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CAssemblyOperand t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CAssemblyStatement t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CStatement t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

nodeInfo :: CStatement t1 -> NodeInfo #

CNode t1 => CNode (CDerivedDeclarator t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CDeclarator t1) # 
Instance details

Defined in Language.C.Syntax.AST

Methods

nodeInfo :: CDeclarator t1 -> NodeInfo #

CNode t1 => CNode (CDeclaration t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CFunctionDef t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CExternalDeclaration t1) # 
Instance details

Defined in Language.C.Syntax.AST

CNode t1 => CNode (CTranslationUnit t1) # 
Instance details

Defined in Language.C.Syntax.AST

(CNode a, CNode b) => CNode (Either a b) # 
Instance details

Defined in Language.C.Data.Node

Methods

nodeInfo :: Either a b -> NodeInfo #

undefNode :: NodeInfo #

create a node with neither name nor positional information

mkNodeInfoOnlyPos :: Position -> NodeInfo #

| Given only a source position, create a new node attribute

mkNodeInfo :: Position -> Name -> NodeInfo #

Given a source position and a unique name, create a new attribute identifier

internalNode :: NodeInfo #

Deprecated: use undefNode instead

Extensible errors