MENU閉じる

HEXA BLOG

ソフトウェア紹介

HEXA BLOGその他ソフトウェア紹介2010.5.17

構文解析

今朝は少し肌寒いなぁと思って厚手の上着を着て家を出たのですが、意外と暖か…暑いexclamationふらふら
長袖のシャツの袖をまくって仕事をしているシラッチです。
この土日に、オープンソースのプロジェクトのソースを読んでいて、ふと
既存のソースコードを、特定のコーディングルールに従ったフォーマットに置き換えたり
関数の解説コメントのテンプレートを、特定のフォーマットで付加させたりできるような
C++の構文解析ツールがあれば、いろいろ便利そうだと思い、調べていたので
紹介したいと思います。
まず、伝統のある、というか定番なのが lex と yacc のようです。
lex http://ja.wikipedia.org/wiki/Lex
 「テキストを任意の規則に従って単語に切り分けていくプログラム」を作ってくれるプログラムです。
yacc http://ja.wikipedia.org/wiki/Yacc
 「単語毎に分けられたデータを順番に処理していくプログラム」を作ってくれるプログラムです。
lex/yacc を Python から使えるようにしたモジュールって無いのかな?と思ったらありました。
PLY http://www.dabeaz.com/ply/
他にも Python モジュールで pyparsing という構文解析モジュールがあるようです。
pyparsing http://pyparsing.wikispaces.com/
Eclipse という Java で記述されたオープンソースの IDE のプラグインで
C/C++の開発をできるようにする CDT というプラグインがあるのですが
CDT のパーサーもC++構文解析に利用できそうです。
『CDT ベースのエディターを構築する、第 3 回: 基本的な CDT 構文解析』
http://www.ibm.com/developerworks/jp/opensource/library/os-ecl-cdt3/
う~ん、色々選択肢がありそうですね目
ここに挙げている以外にも様々な構文解析ツールがありそうで
調べれば調べるほど発見があり、奥が深い分野だと実感しましたぴかぴか(新しい)
<おまけ>喫茶店
構文解析ツールではないですが、以下のようなツールもソースコードの作成や解析に
役立ちそうです。
Artistic Style(astyle) http://astyle.sourceforge.net/
 C/C++/C#/Java ソースファイルを自動で再インデント&整形するためのツールです。
DoxyComment http://doxycomment.sourceforge.net/
 Doxygenというソースコード中の特定のフォーマットのコメントを基に
ドキュメントを生成するツールがあるのですが、Doxygen準拠のコメントの
テンプレートをソースコードに挿入できる Microsoft Visual Studio の
add-in です。
※add-in は Standard より上位のバージョンでなければ使えないので Express では利用できません。

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE