このドキュメントは、 Clang 3.4 documentation をテキトーな日本語にゆるふわ翻訳しているドキュメントです。誤解釈などがたくさんあると思いますので信用しないでください。
Clangの外部のサンプル
ここでいう「外部」とは、Clangプロジェクト以外という意味だと思われる。
紹介
このページでは、あなたがClangのツールを開発するのに役立つガイド(または出発点)になるであろういくつかのサンプルを紹介します。
Clangのライブラリベースの設計は、外部のプロジェクトでも容易に使えるようにするためです。そして、我々は常にClangを外部のユーザにもより使いやすいよう改善することに興味を持っています。
Clangが使われる典型的なアプリケーションのカテゴリ:
- 静的解析
- ドキュメント/クロスリファレンス生成
もしClangが使われているプロジェクトやツールを知っていたら(あるいは書いたのなら!)、以下に追加するので Clang's development discussion mailing list にメールを送ってください(またはあなたが既にClangのコンとリビュータなら直接以下に追加して頂いても結構です)。このページの主な目的は開発者の手助けをするような例の提供なので、ソースコードを閲覧できることが必要です。
プロジェクトとツール集
https://github.com/Andersbakken/rtags/
RTagsは、C/C++コードのインデックスを作り、参照やシンボル名、補完情報のインメモリデータベースを永続的に保持するクライアント/サーバ用のアプリケーションです。
http://rprichard.github.com/sourceweb/
C/C++コードのインデキサー、ナビゲータ
https://github.com/etaoins/qconnectlint
qconnectlintは、QObject::connectで生成されたシグナルとスロット接続の静的一貫性証明するツールです。
https://github.com/woboq/woboq_codebrowser
The Weboq Code Browserは、C/C++プロジェクト向けウェブベースのコードブラウザです。サンプルは http://code.woboq.org/ をチェックしてください!
https://github.com/mozilla/dxr
DXRは、コンパイラによる静的解析データ収集を使ったソースコードクロスリファレンスツールです。
https://github.com/eschulte/clang-mutate
このツールはC言語ソースファイルの操作の数を実行します。
https://github.com/gmarpons/Crisp
LLVM/Clang用のコーディングルールバリデーション・アドオンです。CrispのルールはPrologで書きます。新しいルールを書くことが簡単なハイレベルなDSLは開発中です。おそらくCRISPと呼ばれることになりますが、これはCoding Rules in Sugared Prologのアナグラムです。
https://github.com/drothlis/clang-ctags
C++ソースコード用のタグファイルジェネレータです。
https://github.com/exclipy/clang_indexer
これはC/C++用のLibClangライブラリをベースにしたインデキサです。
https://github.com/holtgrewe/linty
Lintyは、PythonとLibClangによるC/C++スタイルチェッカです。
https://github.com/axw/cmonster
cmonsterはClangのC++ パーサのためのPythonラッパです。
https://github.com/rizsotto/Constantine
Constantineは、Clang Pluginを学ぶための小さいプロジェクトです。偽の(おそらく適当なという意味の)const解析を実装しています。constなしで変数が宣言されたときに注意を生成します。
https://github.com/jessevdk/cldoc
cldocはClangをベースにしたC/C++のドキュメントジェネレータです。cldocはC/C++のソフトウェアドキュメントを書かなければならないという問題を解決できる、近代的で(作業に)割り込まない強気なアプローチです。