タグ

Clangに関するdelegateのブックマーク (8)

  • Clang: ASTを調べる環境の準備

    Language Server Protocolを使って関数や変数の情報を取得しようとしたがうまくいかないことが分かった。AST(Abstract Syntax Tree)を覗かないといけなさそうだったので、Clangを導入してみる。 「LLVM-ClangのASTを解析するまっとうな方法について」という記事に、Clang が吐き出すASTを読み出す方法が載っていたので、まずは掲載されているプログラムがそのまま動かせるよう環境を整えた。今後は、Visual Studio Codeとつながりやすくしたり、C++よりテキトーにかける言語で扱いやすくなるようJSONにしてみたり…色々やってみようと思う。 インストール Clang と LLVMは「LLVM Download Page」からダウンロードできる。適当なところにインストールすればよいので特に手順はない。PATHは通しておく。 特に自前で

    Clang: ASTを調べる環境の準備
  • C++のヘッダファイルにつけられた属性マクロを解析

  • ClangでC++をパースしてしてみよう – Lancarse Blog

    こんにちは、プログラマーのイシドです。 最近巷ではC#だったりブループリントだったりが人気のようですが、私はまだC++を使うことが多いです。開発をしているとたまに構造体を出力して、他の言語で読みたくなったりします。大げさなシステムは・・・と思いながらつい手動でシリアライズ関数を作ったり、別言語で書いたりしてしまいがちですが、ミスもありますし自動で生成できるならそれに越したことはありません。 シリアライズ生成でよくあるのが、専用のフォーマットで構造体を定義して、それをジェネレータに入力して各種言語の定義を生成するものです。しかし普段の開発では先にC++でランタイムの実装をしてしまうこともあるため、C++の構造体の定義から自動でシリアライザの定義やC#の定義を生成したいなと思いました。実際にClangによるC++パーサを試してみましたところ、思った以上に手軽にできましたので、そのやり方を載せた

  • Shibu's Diary: Qt+JS: Mac OS Xについての注意点

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 MacはOSのバージョン間での互換がいろいろクセがあるので、古いバージョンで使っていた方法がそのまま他の方法で使えるとは限りません。 バイナリ配布版+10.6, 10.7 10.6, 10.7はそれほど苦労はないと思います。バイナリ配布されているQtと、XCodeのコマンドラインツールのgcc(4.2, Apple版)を使っておけば問題はないはずです。 バイナリ配布版+10.8 clangを使わないとビルドできないです。QtCreaterを使っている場合は、ツールチェーンをClangにしてください。コマンドラインからQMakeでビルドする際は次のオプションが必要となります。ちなみに、Qt 5系はいろいろトライしていますが、QtScriptバインディングがビルドできません。内部の

  • LLVM3.2登場

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMプロジェクトは20日(米国時間)、LLVMの最新版となる「LLVM 3.2」を公開した。LLVMはOSSとして開発されているコンパイラインフラストラクチャ。C/C++/Objective-Cコンパイラである「Clang」をはじめ、さまざまなコンパイラやツールチェーン、ライブラリ、サブプロジェクトなどを抱えるプラットフォームで、AppleAMD、NVIDIA、Adobeなど大手ソフトウェアベンダで活用されている。 LLVM 3.2は3.1から6ヶ月以上の開発期間を経てリリースされた最新版となる。LLVM 3.2では、新たにScal

  • iPhoneアプリ開発にかかせない静的解析ツール「clang」

    こんにちは、中川です。 今回は、最近行っているiPhoneアプリの開発で非常に便利な ツール「clang」というものがありましたのでご紹介したいと思います。 iPhoneアプリではPHPとは違いメモリの扱いが非常に重要になってきます。 allocしたものの、リリースをしていないが為に、メモリリークをおこし、 実行が非常に遅くなったり、フリーズしたりということがおこってきます。 よく気をつけてコードを書いていても、うっかりということがありので、 コードの静的解析をおこなうツールというものは非常に役にたちます。 では、早速使い方を。 まずは、以下のページからclang (checker-132.tar.bz2)をダウンロードし解凍します。 LLVM/Clang Static Analyzer 解凍した中身を /usr/local/bin/に全て配置します。 (/usr/local/binにPA

    iPhoneアプリ開発にかかせない静的解析ツール「clang」
  • clangでコード補完してみる(1回目) - とりあえず日記

    clangとはC++の「静的コード解析」ができるコマンドラインツールです。 (家)http://clang.llvm.org/get_started.html clang (クラン(グ)のように発音 [2] )とは、C、C++、Objective-Cプログラミング言語向けのコンパイ ラのフロントエンドであり、Low Level Virtual Machine (LLVM) をバックエンドとして使用する。 (wikipediaから引用) まずは、コマンドライン上で動かしてみる (test2.cpp) class foo{ int get(); void set(int x); }; int hoge(foo &c){ c. //←ここの候補をリストアップする。 } (コマンドライン) clang.exe -cc1 -fsyntax-only -code-completion-at=test

    clangでコード補完してみる(1回目) - とりあえず日記
  • Vimで精度の高いC++のコード補完を行う - Ideals and Reality

    Vimでコード補完するプラグインと言えばneocomplcacheが有名ですが、さすがにC++の補完はなかなか辛いところがあります。(それでもかなり高機能ですが) そこそこに精度が高い補完を求めるのならOmniCppCompleteを使う手もありますが、これでも限界はあります。 そこでもっと高い精度でのC++のコード補完行うためのプラグインでclang_completeというものがあります。 clang_complete これはClangという静的コード解析ツールを用いてVim上で解析結果を補完に反映させようというプラグインです。 実際のClangはC++などのコンパイラフロントエンドであり、静的コード解析はあくまでその機能のひとつです。 LLVMと共に現在も絶賛開発中でC++11対応なども期待出来るところです。 clang_completeとneocomplcache-clang 実はc

    Vimで精度の高いC++のコード補完を行う - Ideals and Reality
  • 1