Popularity
8.4
Declining
Activity
0.0
Stable
35
6
20
Monthly Downloads: 24
Programming language: Haskell
License: Apache License 2.0
Tags:
Language
Latest version: v0.2.0.3
clang-pure alternatives and similar packages
Based on the "Language" category.
Alternatively, view clang-pure alternatives based on common mentions on social networks and blogs.
-
stylish-haskell
DISCONTINUED. Haskell code prettifier [Moved to: https://github.com/haskell/stylish-haskell] -
ministg
Ministg is an interpreter for a high-level, small-step, operational semantics for the STG machine.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
Promo
www.saashub.com
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of clang-pure or a related project?
README
Pure Haskell bindings to libclang
A Haskell library for pure C++ code analysis
API examples
Enumerate all function declarations in main.cpp
module Main (main) where
import Control.Monad
import Language.C.Clang
main :: IO ()
main = do
idx <- createIndex
tu <- parseTranslationUnit idx "main.cpp" ["-I/usr/local/include"]
let root = translationUnitCursor tu
children = cursorChildren root
functionDecls = filter (\c -> cursorKind c == FunctionDecl) children
forM_ functionDecls (print . cursorSpelling)
List all function declarations and their types, lens
-style
idx <- createIndex
tu <- parseTranslationUnit idx path clangArgs
let funDecs =
-- fold over cursors recursively
cursorDescendantsF
-- finding FunctionDecls...
. folding (matchKind @'FunctionDecl)
-- ...that are actually in the given file
. filtered (isFromMainFile . rangeStart . cursorExtent)
-- and get their names and types
. to (\funDec -> cursorSpelling funDec <> " :: " <> typeSpelling (cursorType funDec))
BS.putStrLn $ BS.unlines (translationUnitCursor tu ^.. funDecs)
Development
[View development guide][building]