=======================
External Clang Examples
=======================

Introduction
============

This page provides some examples of the kinds of things that people have
done with Clang that might serve as useful guides (or starting points) from
which to develop your own tools. They may be helpful even for something as
banal (but necessary) as how to set up your build to integrate Clang.

Clang's library-based design is deliberately aimed at facilitating use by
external projects, and we are always interested in improving Clang to
better serve our external users. Some typical categories of applications
where Clang is used are:

- Static analysis.
- Documentation/cross-reference generation.

If you know of (or wrote!) a tool or project using Clang, please send an
email to Clang's `development discussion mailing list
<https://lists.llvm.org/mailman/listinfo/cfe-dev>`_ to have it added.
(or if you are already a Clang contributor, feel free to directly commit
additions). Since the primary purpose of this page is to provide examples
that can help developers, generally they must have code available.

List of projects and tools
==========================

`<https://github.com/Andersbakken/rtags/>`_
   "RTags is a client/server application that indexes c/c++ code and keeps
   a persistent in-memory database of references, symbolnames, completions
   etc."

`<https://rprichard.github.com/sourceweb/>`_
   "A C/C++ source code indexer and navigator"

`<https://github.com/etaoins/qconnectlint>`_
   "qconnectlint is a Clang tool for statically verifying the consistency
   of signal and slot connections made with Qt's ``QObject::connect``."

`<https://github.com/woboq/woboq_codebrowser>`_
   "The Woboq Code Browser is a web-based code browser for C/C++ projects.
   Check out `<https://code.woboq.org/>`_ for an example!"

`<https://github.com/mozilla/dxr>`_
    "DXR is a source code cross-reference tool that uses static analysis
    data collected by instrumented compilers."

`<https://github.com/eschulte/clang-mutate>`_
    "This tool performs a number of operations on C-language source files."

`<https://github.com/gmarpons/Crisp>`_
    "A coding rule validation add-on for LLVM/clang. Crisp rules are written
    in Prolog. A high-level declarative DSL to easily write new rules is under
    development. It will be called CRISP, an acronym for *Coding Rules in
    Sugared Prolog*."

`<https://github.com/drothlis/clang-ctags>`_
    "Generate tag file for C++ source code."

`<https://github.com/exclipy/clang_indexer>`_
    "This is an indexer for C and C++ based on the libclang library."

`<https://github.com/holtgrewe/linty>`_
    "Linty - C/C++ Style Checking with Python & libclang."

`<https://github.com/axw/cmonster>`_
    "cmonster is a Python wrapper for the Clang C++ parser."

`<https://github.com/rizsotto/Constantine>`_
    "Constantine is a toy project to learn how to write clang plugin.
    Implements pseudo const analysis. Generates warnings about variables,
    which were declared without const qualifier."

`<https://github.com/jessevdk/cldoc>`_
    "cldoc is a Clang based documentation generator for C and C++.
    cldoc tries to solve the issue of writing C/C++ software documentation
    with a modern, non-intrusive and robust approach."

`<https://github.com/AlexDenisov/ToyClangPlugin>`_
    "The simplest Clang plugin implementing a semantic check for Objective-C.
    This example shows how to use the ``DiagnosticsEngine`` (emit warnings,
    errors, fixit hints).  See also `<http://l.rw.rw/clang_plugin>`_ for
    step-by-step instructions."

`<https://phabricator.kde.org/source/clazy>`_
   "clazy is a compiler plugin which allows clang to understand Qt semantics.
   You get more than 50 Qt related compiler warnings, ranging from unneeded
   memory allocations to misusage of API, including fix-its for automatic
   refactoring."

`<https://gerrit.libreoffice.org/gitweb?p=core.git;a=blob_plain;f=compilerplugins/README;hb=HEAD>`_
   "LibreOffice uses a Clang plugin infrastructure to check during the build
   various things, some more, some less specific to the LibreOffice source code.
   There are currently around 50 such checkers, from flagging C-style casts and
   uses of reserved identifiers to ensuring that code adheres to lifecycle
   protocols for certain LibreOffice-specific classes.  They may serve as
   examples for writing RecursiveASTVisitor-based plugins."
