Copyright | Copyright (c) 2016 the Hakaru team |
---|---|
License | BSD3 |
Maintainer | zsulliva@indiana.edu |
Stability | experimental |
Portability | GHC-only An AST for the C Family and preprocessor. Much of this was originally based |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Language.Hakaru.CodeGen.AST
Description
on Manuel M T Chakravarty and Benedikt Hubar's "language-c" package.
It is an AST for the C99 standard and should compile with the -pedantic flag
Documentation
data Preprocessor Source #
Constructors
PPDefine String String | |
PPInclude String | |
PPUndef String | |
PPIf String | |
PPIfDef String | |
PPIfNDef String | |
PPElse String | |
PPElif String | |
PPEndif String | |
PPError String | |
PPPragma [String] |
Instances
Eq Preprocessor Source # | |
Defined in Language.Hakaru.CodeGen.AST | |
Ord Preprocessor Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods compare :: Preprocessor -> Preprocessor -> Ordering # (<) :: Preprocessor -> Preprocessor -> Bool # (<=) :: Preprocessor -> Preprocessor -> Bool # (>) :: Preprocessor -> Preprocessor -> Bool # (>=) :: Preprocessor -> Preprocessor -> Bool # max :: Preprocessor -> Preprocessor -> Preprocessor # min :: Preprocessor -> Preprocessor -> Preprocessor # | |
Show Preprocessor Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods showsPrec :: Int -> Preprocessor -> ShowS # show :: Preprocessor -> String # showList :: [Preprocessor] -> ShowS # | |
Pretty Preprocessor Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Constructors
CDeclExt CDecl | |
CFunDefExt CFunDef | |
CCommentExt String | |
CPPExt Preprocessor |
Constructors
CDeclr (Maybe CPtrDeclr) CDirectDeclr |
Constructors
CStorageSpec CStorageSpec | |
CTypeSpec CTypeSpec | |
CTypeQual CTypeQual | |
CFunSpec CFunSpec |
Instances
Eq CDeclSpec Source # | |
Ord CDeclSpec Source # | |
Show CDeclSpec Source # | |
Pretty CDeclSpec Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
data CStorageSpec Source #
Instances
Eq CStorageSpec Source # | |
Defined in Language.Hakaru.CodeGen.AST | |
Ord CStorageSpec Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods compare :: CStorageSpec -> CStorageSpec -> Ordering # (<) :: CStorageSpec -> CStorageSpec -> Bool # (<=) :: CStorageSpec -> CStorageSpec -> Bool # (>) :: CStorageSpec -> CStorageSpec -> Bool # (>=) :: CStorageSpec -> CStorageSpec -> Bool # max :: CStorageSpec -> CStorageSpec -> CStorageSpec # min :: CStorageSpec -> CStorageSpec -> CStorageSpec # | |
Show CStorageSpec Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods showsPrec :: Int -> CStorageSpec -> ShowS # show :: CStorageSpec -> String # showList :: [CStorageSpec] -> ShowS # | |
Pretty CStorageSpec Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Constructors
CConstQual | |
CVolatQual |
Instances
Eq CTypeQual Source # | |
Ord CTypeQual Source # | |
Show CTypeQual Source # | |
Pretty CTypeQual Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
data CDirectDeclr Source #
Constructors
CDDeclrIdent Ident | |
CDDeclrArr CDirectDeclr (Maybe CExpr) | |
CDDeclrFun CDirectDeclr [[CTypeSpec]] | |
CDDeclrRec CDeclr |
Instances
Eq CDirectDeclr Source # | |
Defined in Language.Hakaru.CodeGen.AST | |
Ord CDirectDeclr Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods compare :: CDirectDeclr -> CDirectDeclr -> Ordering # (<) :: CDirectDeclr -> CDirectDeclr -> Bool # (<=) :: CDirectDeclr -> CDirectDeclr -> Bool # (>) :: CDirectDeclr -> CDirectDeclr -> Bool # (>=) :: CDirectDeclr -> CDirectDeclr -> Bool # max :: CDirectDeclr -> CDirectDeclr -> CDirectDeclr # min :: CDirectDeclr -> CDirectDeclr -> CDirectDeclr # | |
Show CDirectDeclr Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods showsPrec :: Int -> CDirectDeclr -> ShowS # show :: CDirectDeclr -> String # showList :: [CDirectDeclr] -> ShowS # | |
Pretty CDirectDeclr Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Constructors
CVoid | |
CChar | |
CShort | |
CInt | |
CLong | |
CFloat | |
CDouble | |
CSigned | |
CUnsigned | |
CSUType CSUSpec | |
CTypeDefType Ident | |
CEnumType CEnum |
Instances
Eq CTypeSpec Source # | |
Ord CTypeSpec Source # | |
Show CTypeSpec Source # | |
Pretty CTypeSpec Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Instances
Eq CTypeName Source # | |
Ord CTypeName Source # | |
Show CTypeName Source # | |
Pretty CTypeName Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Constructors
CStructTag | |
CUnionTag |
Constructors
CInitExpr CExpr | |
CInitList [([CPartDesig], CInit)] |
data CPartDesig Source #
Constructors
CArrDesig CExpr | |
CMemberDesig CExpr |
Instances
Eq CPartDesig Source # | |
Defined in Language.Hakaru.CodeGen.AST | |
Ord CPartDesig Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods compare :: CPartDesig -> CPartDesig -> Ordering # (<) :: CPartDesig -> CPartDesig -> Bool # (<=) :: CPartDesig -> CPartDesig -> Bool # (>) :: CPartDesig -> CPartDesig -> Bool # (>=) :: CPartDesig -> CPartDesig -> Bool # max :: CPartDesig -> CPartDesig -> CPartDesig # min :: CPartDesig -> CPartDesig -> CPartDesig # | |
Show CPartDesig Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods showsPrec :: Int -> CPartDesig -> ShowS # show :: CPartDesig -> String # showList :: [CPartDesig] -> ShowS # | |
Pretty CPartDesig Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Constructors
Inline |
Instances
Eq CPtrDeclr Source # | |
Ord CPtrDeclr Source # | |
Show CPtrDeclr Source # | |
Pretty CPtrDeclr Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Constructors
data CCompoundBlockItem Source #
Constructors
CBlockStat CStat | |
CBlockDecl CDecl |
Instances
Eq CCompoundBlockItem Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods (==) :: CCompoundBlockItem -> CCompoundBlockItem -> Bool # (/=) :: CCompoundBlockItem -> CCompoundBlockItem -> Bool # | |
Ord CCompoundBlockItem Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods compare :: CCompoundBlockItem -> CCompoundBlockItem -> Ordering # (<) :: CCompoundBlockItem -> CCompoundBlockItem -> Bool # (<=) :: CCompoundBlockItem -> CCompoundBlockItem -> Bool # (>) :: CCompoundBlockItem -> CCompoundBlockItem -> Bool # (>=) :: CCompoundBlockItem -> CCompoundBlockItem -> Bool # max :: CCompoundBlockItem -> CCompoundBlockItem -> CCompoundBlockItem # min :: CCompoundBlockItem -> CCompoundBlockItem -> CCompoundBlockItem # | |
Show CCompoundBlockItem Source # | |
Defined in Language.Hakaru.CodeGen.AST Methods showsPrec :: Int -> CCompoundBlockItem -> ShowS # show :: CCompoundBlockItem -> String # showList :: [CCompoundBlockItem] -> ShowS # | |
Pretty CCompoundBlockItem Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Constructors
Constructors
CIntConst Integer | |
CCharConst Char | |
CFloatConst Float | |
CStringConst String |
Constructors
CPreIncOp | |
CPreDecOp | |
CPostIncOp | |
CPostDecOp | |
CAdrOp | |
CIndOp | |
CPlusOp | |
CMinOp | |
CCompOp | |
CNegOp |
Constructors
CMulOp | |
CDivOp | |
CRmdOp | |
CAddOp | |
CSubOp | |
CShlOp | |
CShrOp | |
CLeOp | |
CGrOp | |
CLeqOp | |
CGeqOp | |
CEqOp | |
CNeqOp | |
CAndOp | |
CXorOp | |
COrOp | |
CLndOp | |
CLorOp |
Instances
Eq CBinaryOp Source # | |
Ord CBinaryOp Source # | |
Show CBinaryOp Source # | |
Pretty CBinaryOp Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
Constructors
CAssignOp | |
CMulAssOp | |
CDivAssOp | |
CRmdAssOp | |
CAddAssOp | |
CSubAssOp | |
CShlAssOp | |
CShrAssOp | |
CAndAssOp | |
CXorAssOp | |
COrAssOp |
Instances
Eq CAssignOp Source # | |
Ord CAssignOp Source # | |
Show CAssignOp Source # | |
Pretty CAssignOp Source # | |
Defined in Language.Hakaru.CodeGen.Pretty |
cNameStream :: [String] Source #