clang
Version, currently 0.3.03 versions
- 0.3.0latestJul 1, 2019
- 0.2.0not indexedJul 2, 2026
- 0.1.0not indexedJul 2, 2026
github.com/crystal-lang/clang.cr
Bindings for libclang
52 stars
2 dependents
License: Apache-2.0
Installation
# Add this to your shard.yml
dependencies:
clang:
github: crystal-lang/clang.cr
version: ~> 0.3.0Then run:
shards installshard.yml
- Crystal
- no constraint declared
- License
- Apache-2.0
- Author
- Julien Portalier <julien@portalier.com>
- Target
c2crfrom samples/c2cr.cr
Dependencies
This version declares no dependencies.
README
# libclang bindings for Crystal
Usage:
```crystal
require "clang"
index = Clang::Index.new
files = [
#Clang::UnsavedFile.new("input.c", "#include <pcre.h>\n"),
Clang::UnsavedFile.new("input.c", "#include <clang/Basic/ABI.h>\n"),
]
tu = Clang::TranslationUnit.from_source(index, files, [
"-I/usr/include",
"-I/usr/lib/llvm-5.0/include",
])
tu.cursor.visit_children do |cursor|
p cursor
Clang::ChildVisitResult::Continue
end
```
## Samples
See the `samples` folder for some example usages:
- `samples/debug.cr` will print the AST of C or C++ headers as they are parsed;
- `samples/c2cr.cr` will automatically generate Crystal bindings for a C header.
For example:
```sh
$ shards build --release
$ bin/c2cr -I/usr/lib/llvm-5.0/include llvm-c/Core.h \
--remove-enum-prefix=LLVM --remove-enum-suffix > llvm-c/Core.cr
$ bin/c2cr -I/usr/lib/llvm-5.0/include clang-c/Index.h \
--remove-enum-prefix > clang-c/Index.cr
$ bin/c2cr gtk-2.0/gtk/gtkenums.h --remove-enum-prefix > gtk/enums.cr
```
## Reference
- [C interface to Clang](http://clang.llvm.org/doxygen/group__CINDEX.html)
## License
Distributed under the Apache 2.0 license.
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.3.0- Tagged
- Jul 1, 2019
- Commit
abfea6827e16- Indexed
- yes
Dependents
Repository
github.com/crystal-lang/clang.cr
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 3