Libclang é a interface C da família de compiladores C de Clang. Ele fornece uma API relativamente pequena que expõe as instalações para analisar o código-fonte em uma árvore de sintaxe abstrata (AST), carregando ASTs já parecidos, atravessando as AST, associando locais de fonte física a elementos dentro da AST e outras instalações que apóiam as ferramentas de desenvolvimento baseadas em Clang.
Essa interface C para CLANG nunca fornecerá toda a representação de informações armazenada no C ++ AST de Clang, nem deve: a intenção é manter uma API que seja relativamente estável de uma liberação para a seguinte, fornecendo apenas a funcionalidade básica necessária para apoiar as ferramentas de desenvolvimento.
Você pode encontrar um artigo sobre Libclang para Delphi no meu blog.
Neslib.clang aproveita Libclang de duas maneiras:
A unidade Neslib.Clang.Api fornece os traduções do cabeçalho para a versão 14.0 do Libclang. Você pode usar essas traduções de cabeçalho, pois usaria a libclang de um idioma C. A documentação para a API C pode ser encontrada aqui: https://clang.llvm.org/doxygen/index.html
A unidade Neslib.Clang fornece uma abstração de nível mais alta da API Libclang. Ele fornece um modelo de classe fino na parte superior da API Libclang, facilitando o uso da Delphi. Além disso, fornece gerenciamento automático de memória para que você não precise se preocupar com quais recursos lançar e quando.
A documentação da unidade Neslib.Clang pode ser encontrada no arquivo Neslib.clang.chm ou on-line em https://neslib.github.io/neslib.clang.
Como as DLLs de Clang são muito grandes (mais de 64 MB), o Neslib.clang é enviado apenas com as versões de 32 bits dessas DLLs. Se você preferir usar a versão de 64 bits, precisará baixar a versão de 64 bits do LLVM na página de download do LLVM (não deixe de escolher a versão que corresponde a esta versão Neslib.clang).
Após a instalação, você encontrará libclang.dll no diretório da bin. Você também precisa copiar as DLLs de tempo de execução do VC ( msvcp140.dll e vcruntime140.dll ) desse diretório.
Neslib.clang é licenciado sob a licença BSD simplificada. Consulte License.txt para obter detalhes.