LibClang-3.8.0: test/Test_Diagnostics_FFI.hs
import System(getArgs)
import Data.Maybe(fromJust, isJust)
import qualified Clang.FFI as Clang
-- import qualified Clang.TranslationUnit as Clang
-- import qualified Clang.Diagnostic as Diagnostic
main = do
args <- getArgs
index <- Clang.createIndex False False
mtu <- Clang.parseTranslationUnit index Nothing args [] 0
let tu = if isJust mtu then fromJust mtu else error "No TXUnit!"
defDisplayOpts <- Clang.defaultDiagnosticDisplayOptions
let printDiag i = do
diag <- Clang.getDiagnostic tu i
clstr <- Clang.formatDiagnostic diag defDisplayOpts
str <- Clang.getCString clstr
putStrLn $ "Diag:" ++ str
numDiags <- Clang.getNumDiagnostics tu
putStrLn $ "numDiags:" ++ show numDiags
mapM_ printDiag [0..numDiags]