packages feed

libclang-bindings-0.1.0.0: src/Clang/HighLevel.hs

-- | High-level API to @libclang@
--
-- The functions in this module (intentionally) clash with the corresponding
-- function in "Clang.LowLevel.Core": the hope is that by keeping the names of
-- corresponding functions the same, the API is easier to use. You may therefore
-- wish to import this module qualified. Typical usage:
--
-- > import Clang.HighLevel qualified as HighLevel
-- > import Clang.HighLevel.Types
--
-- The "Clang.HighLevel.Types" module avoids name clashes and is intended for
-- unqualified import.
module Clang.HighLevel (
    -- * Source locations
    -- ** Get single location
    clang_getExpansionLocation
  , clang_getPresumedLocation
  , clang_getSpellingLocation
  , clang_getFileLocation
    -- ** Pretty-printing
  , ShowFile(..)
  , prettySingleLoc
  , prettyMultiLoc
  , prettyRangeSingleLoc
  , prettyRangeMultiLoc
    -- ** Convenience wrappers
    -- *** for @CXSourceLocation@
  , clang_getDiagnosticLocation
  , clang_getCursorLocation
  , clang_getCursorLocation'
  , clang_getTokenLocation
    -- *** for @CXSourceRange@
  , clang_getDiagnosticRange
  , clang_getDiagnosticFixIt
  , clang_Cursor_getSpellingNameRange
  , clang_getCursorExtent
  , clang_getTokenExtent
    -- * Tokens
  , clang_tokenize
    -- * Diagnostics
  , clang_getDiagnostics
    -- * Folds
  , clang_visitChildren
    -- * Declaration classification
  , classifyDeclaration
  , classifyTentativeDefinition
    -- * General wrappers
  , withIndex
  , withTranslationUnit
  , withTranslationUnit2
  , withUnsavedFile
    -- * Evaluation
  , clang_evaluate
  ) where

import Clang.HighLevel.Declaration
import Clang.HighLevel.Diagnostics
import Clang.HighLevel.Evaluate
import Clang.HighLevel.Fold
import Clang.HighLevel.SourceLoc
import Clang.HighLevel.Tokens
import Clang.HighLevel.Wrappers