Copyright | (c) Galois Inc 2015-2016 |
---|---|
License | BSD3 |
Maintainer | Rob Dockins <rdockins@galois.com> |
Stability | provisional |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module defines several functions whose names clash with functions
offered elsewhere in llvm-pretty
(e.g., Text.LLVM.PP) and in
crucible-llvm
(e.g., Lang.Crucible.LLVM.MemModel.MemLog). For this
reason, it is recommended to import this module qualified.
Synopsis
- commaSepList :: [Doc ann] -> Doc ann
- ppIntType :: Integral a => a -> Doc ann
- ppPtrType :: Doc ann -> Doc ann
- ppArrayType :: Natural -> Doc ann -> Doc ann
- ppVectorType :: Natural -> Doc ann -> Doc ann
- ppIntVector :: Integral a => Natural -> a -> Doc ann
- ppLLVMLatest :: ((?config :: Config) => a) -> a
- ppDeclare :: Declare -> Doc
- ppIdent :: Ident -> Doc
- ppSymbol :: Symbol -> Doc
- ppType :: Type -> Doc
- ppValue :: Value -> Doc
Documentation
commaSepList :: [Doc ann] -> Doc ann Source #
Print list of documents separated by commas and spaces.
llvm-pretty
printing with the latest LLVM version
ppLLVMLatest :: ((?config :: Config) => a) -> a Source #
Pretty-print an LLVM-related AST in accordance with the latest LLVM version
that llvm-pretty
currently supports (i.e., the value of llvmVlatest
.)
Note that we are mainly using the llvm-pretty
printer in crucible-llvm
for the sake of defining Show
instances and creating error messages, not
for creating machine-readable LLVM code. As a result, it doesn't particularly
matter which LLVM version we use, as any version-specific differences in
pretty-printer output won't be that impactful.
ppDeclare :: Declare -> Doc Source #
Invoke ppDeclare
in accordance with the latest LLVM version that
llvm-pretty
supports.
ppIdent :: Ident -> Doc Source #
Invoke ppIdent
in accordance with the latest LLVM version that
llvm-pretty
supports.
ppSymbol :: Symbol -> Doc Source #
Invoke ppSymbol
in accordance with the latest LLVM version that
llvm-pretty
supports.