language-c-0.3.1.1: Analysis and generation of C codeSource codeContentsIndex
Language.C.Syntax.Constants
Portabilityghc
Stabilityexperimental
Maintainerbenedikt.huber@gmail.com
Contents
Utilities
C char constants (and multi-character character constants)
C integral constants
C floating point constants
C string literals
Description
This module provides support for representing, checking and exporting c constants, i.e. integral, float, character and string constants.
Synopsis
escapeChar :: Char -> String
unescapeChar :: String -> (Char, String)
unescapeString :: String -> String
newtype Flags f = Flags Integer
noFlags :: Flags f
setFlag :: Enum f => f -> Flags f -> Flags f
clearFlag :: Enum f => f -> Flags f -> Flags f
testFlag :: Enum f => f -> Flags f -> Bool
cChar :: Char -> CChar
cChar_w :: Char -> CChar
cChars :: [Char] -> Bool -> CChar
data CChar
= CChar !Char !Bool
| CChars [Char] !Bool
getCChar :: CChar -> [Char]
getCCharAsInt :: CChar -> Integer
isWideChar :: CChar -> Bool
showCharConst :: Char -> ShowS
data CIntFlag
= FlagUnsigned
| FlagLong
| FlagLongLong
| FlagImag
data CIntRepr
= DecRepr
| HexRepr
| OctalRepr
cInteger :: Integer -> CInteger
data CInteger = CInteger !Integer !CIntRepr !(Flags CIntFlag)
getCInteger :: CInteger -> Integer
readCInteger :: CIntRepr -> String -> Either String CInteger
cFloat :: Float -> CFloat
data CFloat = CFloat !String
readCFloat :: String -> CFloat
cString :: String -> CString
cString_w :: String -> CString
data CString = CString [Char] Bool
getCString :: CString -> String
showStringLit :: String -> ShowS
concatCStrings :: [CString] -> CString
Utilities
escapeChar :: Char -> StringSource
unescapeChar :: String -> (Char, String)Source
unescapeString :: String -> StringSource
newtype Flags f Source
Constructors
Flags Integer
noFlags :: Flags fSource
setFlag :: Enum f => f -> Flags f -> Flags fSource
clearFlag :: Enum f => f -> Flags f -> Flags fSource
testFlag :: Enum f => f -> Flags f -> BoolSource
C char constants (and multi-character character constants)
cChar :: Char -> CCharSource
construct a character constant from a haskell Char Use cchar_w if you want a wide character constant.
cChar_w :: Char -> CCharSource
construct a wide chararacter constant
cChars :: [Char] -> Bool -> CCharSource
create a multi-character character constant
data CChar Source
C char constants (abstract)
Constructors
CChar !Char !Bool
CChars [Char] !Bool
getCChar :: CChar -> [Char]Source
get the haskell representation of a char constant
getCCharAsInt :: CChar -> IntegerSource
get integer value of a C char constant undefined result for multi-char char constants
isWideChar :: CChar -> BoolSource
return true if the character constant is wide.
showCharConst :: Char -> ShowSSource
showCharConst c prepends _a_ String representing the C char constant corresponding to c. If neccessary uses octal or hexadecimal escape sequences.
C integral constants
data CIntFlag Source
datatype representing type flags for integers
Constructors
FlagUnsigned
FlagLong
FlagLongLong
FlagImag
data CIntRepr Source
datatype for memorizing the representation of an integer
Constructors
DecRepr
HexRepr
OctalRepr
cInteger :: Integer -> CIntegerSource
construct a integer constant (without type flags) from a haskell integer
data CInteger Source
Constructors
CInteger !Integer !CIntRepr !(Flags CIntFlag)
getCInteger :: CInteger -> IntegerSource
readCInteger :: CIntRepr -> String -> Either String CIntegerSource
C floating point constants
cFloat :: Float -> CFloatSource
data CFloat Source
Floats (represented as strings)
Constructors
CFloat !String
readCFloat :: String -> CFloatSource
C string literals
cString :: String -> CStringSource
cString_w :: String -> CStringSource
data CString Source
C String literals
Constructors
CString [Char] Bool
getCString :: CString -> StringSource
showStringLit :: String -> ShowSSource
showStringLiteral s prepends a String representing the C string literal corresponding to s. If neccessary it uses octal or hexadecimal escape sequences.
concatCStrings :: [CString] -> CStringSource
concatenate a list of C string literals
Produced by Haddock version 2.6.1