txt: ## dist_cpan-AZAWAWI-Libclang.md
  # Libclang
  
  [![Build Status](https://travis-ci.org/azawawi/p6-libclang.svg?branch=master)](https://travis-ci.org/azawawi/p6-libclang) [![Build status](https://ci.appveyor.com/api/projects/status/github/azawawi/p6-libclang?svg=true)](https://ci.appveyor.com/project/azawawi/p6-libclang/branch/master)
  
  Perl 6 bindings for [`libclang`](https://clang.llvm.org/doxygen/group__CINDEX.html)
  
  **Note: This is currently experimental and API may change. Please DO NOT use in
  a production environment.**
  
  ## Example
  
  ```
  use v6;
  use Libclang;
  
  my $index = Libclang::Index.new;
  LEAVE $index.destroy if $index.defined;
  
  my $file-name        = $*SPEC.catfile($*PROGRAM.IO.parent, "header.hpp");
  my $translation-unit = Libclang::TranslationUnit.new($index, $file-name);
  LEAVE $translation-unit.destroy if $translation-unit.defined;
  
  my $cursor = $translation-unit.cursor;
  LEAVE $cursor.destroy if $cursor.defined;
  
  $cursor.visit-children(sub ($cursor, $parent) {
    printf("Cursor '%15s' of kind '%s'\n", $cursor.spelling,
      $cursor.kind-spelling);
    return child-visit-recurse;
  });
  
  ```
  
  ## Dependencies
  
  Please follow the instructions below based on your platform to install `libclang` development libraries / headers:
  
  | Platform | Installation command |
  | --- | --- |
  | Debian | `apt-get install libclang-dev` |
  | macOS | `brew update;` `brew install llvm --with-clang` |
  | Windows | Install [mingw-w64-install.exe](https://sourceforge.net/projects/mingw-w64/files). Install [Clang for Windows 64-bit](http://releases.llvm.org/download.html). |
  
  ## Installation
  
  * Install this module using [zef](https://github.com/ugexe/zef):
  
  ```
  $ zef install Libclang
  
  ```
  
  ## Testing
  
  * To run tests:
  
  ```
  $ AUTHOR_TESTING=1 zef test --verbose .
  
  ```
  
  * To run all tests including author tests (Please make sure
    [Test::Meta](https://github.com/jonathanstowe/Test-META) is installed):
  
  ```
  $ zef install Test::META
  $ AUTHOR_TESTING=1 prove -e "perl6 -Ilib"
  
  ```
  
  ## See Also
  
  * <https://gist.githubusercontent.com/raphaelmor/3150866/raw/4f722b922ae19c9d6c328d79d5a5ca8cb018fb77/clanglib.c>
  * <https://shaharmike.com/cpp/libclang/>
  * <http://bastian.rieck.ru/blog/posts/2015/baby_steps_libclang_ast/>
  
  ## Author
  
  Ahmad M. Zawawi, [azawawi](https://github.com/azawawi/) on #perl6.
  
  ## License
  
  [MIT License](LICENSE)
  