language-c-0.9.2: Analysis and generation of C code
Copyright(c) 2008 Benedikt Huber
LicenseBSD-style
Maintainerbenedikt.huber@gmail.com
Stabilityexperimental
Portabilityghc
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.C.Data

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 Source #

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

Instances details
Data SUERef Source # 
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 :: 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 # 
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

Show SUERef Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

showsPrec :: Int -> SUERef -> ShowS

show :: SUERef -> String

showList :: [SUERef] -> ShowS

NFData SUERef Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

rnf :: SUERef -> ()

Eq SUERef Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

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

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

Ord SUERef Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

compare :: SUERef -> SUERef -> Ordering

(<) :: SUERef -> SUERef -> Bool

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

(>) :: SUERef -> SUERef -> Bool

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

max :: SUERef -> SUERef -> SUERef

min :: SUERef -> SUERef -> SUERef

Pretty SUERef Source # 
Instance details

Defined in Language.C.Analysis.Debug

Methods

pretty :: SUERef -> Doc Source #

prettyPrec :: Int -> SUERef -> Doc Source #

type Rep SUERef Source # 
Instance details

Defined in Language.C.Data.Ident

type Rep SUERef = D1 ('MetaData "SUERef" "Language.C.Data.Ident" "language-c-0.9.2-2qlksbsQow9Gzp8WTwI6fa" '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.

sueRefToString :: SUERef -> String Source #

string of a SUE ref (empty if anonymous)

data Ident Source #

C identifiers

Instances

Instances details
Data Ident Source # 
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 :: 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 # 
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

Show Ident Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

showsPrec :: Int -> Ident -> ShowS

show :: Ident -> String

showList :: [Ident] -> ShowS

NFData Ident Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

rnf :: Ident -> ()

Eq Ident Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

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

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

Ord Ident Source # 
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

CNode Ident Source # 
Instance details

Defined in Language.C.Data.Ident

Pos Ident Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

posOf :: Ident -> Position Source #

Pretty Ident Source # 
Instance details

Defined in Language.C.Analysis.Debug

Methods

pretty :: Ident -> Doc Source #

prettyPrec :: Int -> Ident -> Doc Source #

type Rep Ident Source # 
Instance details

Defined in Language.C.Data.Ident

type Rep Ident = D1 ('MetaData "Ident" "Language.C.Data.Ident" "language-c-0.9.2-2qlksbsQow9Gzp8WTwI6fa" '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))))

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.

identToString :: Ident -> String Source #

string of an identifier

internalIdent :: String -> Ident Source #

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

isInternalIdent :: Ident -> Bool Source #

return True if the given identifier is internal

builtinIdent :: String -> Ident Source #

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

Unqiue names

newtype Name Source #

Name is a unique identifier

Constructors

Name 

Fields

Instances

Instances details
Data Name Source # 
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 :: forall r r'. (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

Enum Name Source # 
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]

Generic Name Source # 
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

Ix Name Source # 
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

Read Name Source # 
Instance details

Defined in Language.C.Data.Name

Methods

readsPrec :: Int -> ReadS Name

readList :: ReadS [Name]

readPrec :: ReadPrec Name

readListPrec :: ReadPrec [Name]

Show Name Source # 
Instance details

Defined in Language.C.Data.Name

Methods

showsPrec :: Int -> Name -> ShowS

show :: Name -> String

showList :: [Name] -> ShowS

NFData Name Source # 
Instance details

Defined in Language.C.Data.Name

Methods

rnf :: Name -> ()

Eq Name Source # 
Instance details

Defined in Language.C.Data.Name

Methods

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

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

Ord Name Source # 
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

type Rep Name Source # 
Instance details

Defined in Language.C.Data.Name

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

newNameSupply :: [Name] Source #

return an infinite stream of Names starting with nameId 0

Source code positions

data Position Source #

uniform representation of source file positions

Instances

Instances details
Data Position Source # 
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 :: forall r r'. (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

Generic Position Source # 
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

Show Position Source # 
Instance details

Defined in Language.C.Data.Position

Methods

showsPrec :: Int -> Position -> ShowS

show :: Position -> String

showList :: [Position] -> ShowS

NFData Position Source # 
Instance details

Defined in Language.C.Data.Position

Methods

rnf :: Position -> ()

Eq Position Source # 
Instance details

Defined in Language.C.Data.Position

Methods

(==) :: Position -> Position -> Bool

(/=) :: Position -> Position -> Bool

Ord Position Source # 
Instance details

Defined in Language.C.Data.Position

Methods

compare :: Position -> Position -> Ordering

(<) :: Position -> Position -> Bool

(<=) :: Position -> Position -> Bool

(>) :: Position -> Position -> Bool

(>=) :: Position -> Position -> Bool

max :: Position -> Position -> Position

min :: Position -> Position -> Position

type Rep Position Source # 
Instance details

Defined in Language.C.Data.Position

type Rep Position

posFile :: Position -> String Source #

class Pos a where Source #

class of type which aggregate a source code location

Methods

posOf :: a -> Position Source #

Instances

Instances details
Pos Attr Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: Attr -> Position Source #

Pos CompType Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos CompTypeRef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos Decl Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Methods

posOf :: Decl -> Position Source #

Pos DeclEvent Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos EnumType Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos EnumTypeRef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos Enumerator Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos FunDef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos IdentDecl Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos MemberDecl Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos ObjDef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos ParamDecl Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos TagDef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos TypeDef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos TypeDefRef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

Pos Ident Source # 
Instance details

Defined in Language.C.Data.Ident

Methods

posOf :: Ident -> Position Source #

Pos NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

Methods

posOf :: CAttribute t1 -> Position Source #

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

Methods

posOf :: CConstant t1 -> Position Source #

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

Methods

posOf :: CStatement t1 -> Position Source #

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

Pos a => Pos [a] Source # 
Instance details

Defined in Language.C.Parser.Parser

Methods

posOf :: [a] -> Position Source #

initPos :: FilePath -> Position Source #

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

nopos :: Position Source #

no position (for unknown position information)

builtinPos :: Position Source #

position attached to built-in objects

internalPos :: Position Source #

position used for internal errors

isSourcePos :: Position -> Bool Source #

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

isBuiltinPos :: Position -> Bool Source #

returns True if the given position refers to a builtin definition

isInternalPos :: Position -> Bool Source #

returns True if the given position is internal

Syntax tree nodes

data NodeInfo Source #

Parsed entity attribute

Instances

Instances details
Data NodeInfo Source # 
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 :: forall r r'. (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

Generic NodeInfo Source # 
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

Show NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

Methods

showsPrec :: Int -> NodeInfo -> ShowS

show :: NodeInfo -> String

showList :: [NodeInfo] -> ShowS

NFData NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

Methods

rnf :: NodeInfo -> ()

Eq NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

Methods

(==) :: NodeInfo -> NodeInfo -> Bool

(/=) :: NodeInfo -> NodeInfo -> Bool

Ord NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

Methods

compare :: NodeInfo -> NodeInfo -> Ordering

(<) :: NodeInfo -> NodeInfo -> Bool

(<=) :: NodeInfo -> NodeInfo -> Bool

(>) :: NodeInfo -> NodeInfo -> Bool

(>=) :: NodeInfo -> NodeInfo -> Bool

max :: NodeInfo -> NodeInfo -> NodeInfo

min :: NodeInfo -> NodeInfo -> NodeInfo

CNode NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

Pos NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

Pretty CAlignSpec Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CAlignSpec -> Doc Source #

prettyPrec :: Int -> CAlignSpec -> Doc Source #

Pretty CArrSize Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CArrSize -> Doc Source #

prettyPrec :: Int -> CArrSize -> Doc Source #

Pretty CAsmOperand Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CAsmOperand -> Doc Source #

prettyPrec :: Int -> CAsmOperand -> Doc Source #

Pretty CAsmStmt Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CAsmStmt -> Doc Source #

prettyPrec :: Int -> CAsmStmt -> Doc Source #

Pretty CAttr Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CAttr -> Doc Source #

prettyPrec :: Int -> CAttr -> Doc Source #

Pretty CBlockItem Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CBlockItem -> Doc Source #

prettyPrec :: Int -> CBlockItem -> Doc Source #

Pretty CBuiltin Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CBuiltin -> Doc Source #

prettyPrec :: Int -> CBuiltin -> Doc Source #

Pretty CConst Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CConst -> Doc Source #

prettyPrec :: Int -> CConst -> Doc Source #

Pretty CDecl Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CDecl -> Doc Source #

prettyPrec :: Int -> CDecl -> Doc Source #

Pretty CDeclSpec Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CDeclSpec -> Doc Source #

prettyPrec :: Int -> CDeclSpec -> Doc Source #

Pretty CDeclr Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CDeclr -> Doc Source #

prettyPrec :: Int -> CDeclr -> Doc Source #

Pretty CDesignator Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CDesignator -> Doc Source #

prettyPrec :: Int -> CDesignator -> Doc Source #

Pretty CEnum Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CEnum -> Doc Source #

prettyPrec :: Int -> CEnum -> Doc Source #

Pretty CExpr Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CExpr -> Doc Source #

prettyPrec :: Int -> CExpr -> Doc Source #

Pretty CExtDecl Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CExtDecl -> Doc Source #

prettyPrec :: Int -> CExtDecl -> Doc Source #

Pretty CFunDef Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CFunDef -> Doc Source #

prettyPrec :: Int -> CFunDef -> Doc Source #

Pretty CFunSpec Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CFunSpec -> Doc Source #

prettyPrec :: Int -> CFunSpec -> Doc Source #

Pretty CInit Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CInit -> Doc Source #

prettyPrec :: Int -> CInit -> Doc Source #

Pretty CStat Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CStat -> Doc Source #

prettyPrec :: Int -> CStat -> Doc Source #

Pretty CStorageSpec Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CStorageSpec -> Doc Source #

prettyPrec :: Int -> CStorageSpec -> Doc Source #

Pretty CStrLit Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CStrLit -> Doc Source #

prettyPrec :: Int -> CStrLit -> Doc Source #

Pretty CStructUnion Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CStructUnion -> Doc Source #

prettyPrec :: Int -> CStructUnion -> Doc Source #

Pretty CTranslUnit Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CTranslUnit -> Doc Source #

prettyPrec :: Int -> CTranslUnit -> Doc Source #

Pretty CTypeQual Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CTypeQual -> Doc Source #

prettyPrec :: Int -> CTypeQual -> Doc Source #

Pretty CTypeSpec Source # 
Instance details

Defined in Language.C.Pretty

Methods

pretty :: CTypeSpec -> Doc Source #

prettyPrec :: Int -> CTypeSpec -> Doc Source #

type Rep NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

type Rep NodeInfo = D1 ('MetaData "NodeInfo" "Language.C.Data.Node" "language-c-0.9.2-2qlksbsQow9Gzp8WTwI6fa" 'False) (C1 ('MetaCons "OnlyPos" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Position) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 PosLength)) :+: C1 ('MetaCons "NodeInfo" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Position) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 PosLength) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name))))

class CNode a where Source #

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

Methods

nodeInfo :: a -> NodeInfo Source #

Instances

Instances details
CNode TagFwdDecl Source # 
Instance details

Defined in Language.C.Analysis.DefTable

CNode Attr Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode CompType Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode CompTypeRef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode Decl Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode DeclEvent Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode EnumType Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode EnumTypeRef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode Enumerator Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode FunDef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode IdentDecl Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode MemberDecl Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode ObjDef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode ParamDecl Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode TagDef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode TypeDef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode TypeDefRef Source # 
Instance details

Defined in Language.C.Analysis.SemRep

CNode Ident Source # 
Instance details

Defined in Language.C.Data.Ident

CNode NodeInfo Source # 
Instance details

Defined in Language.C.Data.Node

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Syntax.AST

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

Defined in Language.C.Data.Node

Methods

nodeInfo :: Either a b -> NodeInfo Source #

fileOfNode :: CNode a => a -> Maybe FilePath Source #

undefNode :: NodeInfo Source #

create a node with neither name nor positional information

mkNodeInfoOnlyPos :: Position -> NodeInfo Source #

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

mkNodeInfo :: Position -> Name -> NodeInfo Source #

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

internalNode :: NodeInfo Source #

Deprecated: use undefNode instead

Extensible errors