comparison tools/clang/docs/ExternalClangExamples.rst @ 3:9ad51c7bc036

1st commit. remove git dir and add all files.
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Wed, 15 May 2013 06:43:32 +0900
parents
children 54457678186b
comparison
equal deleted inserted replaced
-1:000000000000 3:9ad51c7bc036
1 =======================
2 External Clang Examples
3 =======================
4
5 Introduction
6 ============
7
8 This page provides some examples of the kinds of things that people have
9 done with Clang that might serve as useful guides (or starting points) from
10 which to develop your own tools. They may be helpful even for something as
11 banal (but necessary) as how to set up your build to integrate Clang.
12
13 Clang's library-based design is deliberately aimed at facilitating use by
14 external projects, and we are always interested in improving Clang to
15 better serve our external users. Some typical categories of applications
16 where Clang is used are:
17
18 - Static analysis.
19 - Documentation/cross-reference generation.
20
21 If you know of (or wrote!) a tool or project using Clang, please send an
22 email to Clang's `development discussion mailing list
23 <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_ to have it added.
24 (or if you are already a Clang contributor, feel free to directly commit
25 additions). Since the primary purpose of this page is to provide examples
26 that can help developers, generally they must have code available.
27
28 List of projects and tools
29 ==========================
30
31 `<https://github.com/Andersbakken/rtags/>`_
32 "RTags is a client/server application that indexes c/c++ code and keeps
33 a persistent in-memory database of references, symbolnames, completions
34 etc."
35
36 `<http://rprichard.github.com/sourceweb/>`_
37 "A C/C++ source code indexer and navigator"
38
39 `<https://github.com/etaoins/qconnectlint>`_
40 "qconnectlint is a Clang tool for statically verifying the consistency
41 of signal and slot connections made with Qt's ``QObject::connect``."
42
43 `<https://github.com/woboq/woboq_codebrowser>`_
44 "The Woboq Code Browser is a web-based code browser for C/C++ projects.
45 Check out `<http://code.woboq.org/>`_ for an example!"
46
47 `<https://github.com/mozilla/dxr>`_
48 "DXR is a source code cross-reference tool that uses static analysis
49 data collected by instrumented compilers."
50
51 `<https://github.com/eschulte/clang-mutate>`_
52 "This tool performs a number of operations on C-language source files."
53
54 `<https://github.com/gmarpons/Crisp>`_
55 "A coding rule validation add-on for LLVM/clang. Crisp rules are written
56 in Prolog. A high-level declarative DSL to easily write new rules is under
57 development. It will be called CRISP, an acronym for *Coding Rules in
58 Sugared Prolog*."
59
60 `<https://github.com/drothlis/clang-ctags>`_
61 "Generate tag file for C++ source code."
62
63 `<https://github.com/exclipy/clang_indexer>`_
64 "This is an indexer for C and C++ based on the libclang library."
65
66 `<https://github.com/holtgrewe/linty>`_
67 "Linty - C/C++ Style Checking with Python & libclang."
68
69 `<https://github.com/axw/cmonster>`_
70 "cmonster is a Python wrapper for the Clang C++ parser."
71
72 `<https://github.com/rizsotto/Constantine>`_
73 "Constantine is a toy project to learn how to write clang plugin.
74 Implements pseudo const analysis. Generates warnings about variables,
75 which were declared without const qualifier."
76
77 `<https://github.com/jessevdk/cldoc>`_
78 "cldoc is a Clang based documentation generator for C and C++.
79 cldoc tries to solve the issue of writing C/C++ software documentation
80 with a modern, non-intrusive and robust approach."