今朝は少し肌寒いなぁと思って厚手の上着を着て家を出たのですが、意外と暖か…暑い![]()
![]()
長袖のシャツの袖をまくって仕事をしているシラッチです。
この土日に、オープンソースのプロジェクトのソースを読んでいて、ふと
既存のソースコードを、特定のコーディングルールに従ったフォーマットに置き換えたり
関数の解説コメントのテンプレートを、特定のフォーマットで付加させたりできるような
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 では利用できません。
BLOG
NEWS
-
2025.12.17インフォメーション年末年始休業のお知らせ
-
2025.11.28プレスリリース完全新作和風ホラーアドベンチャー 『■■ノニラヤ』が正式リリースされました
-
2025.11.27インフォメーション■■ノニラヤの配信用素材を配布しています
-
2025.11.20インフォメーションプレスリリース完全新作和風ホラーアドベンチャー 『■■ノニラヤ』の価格が決定。 未公開映像を含むファイナルトレーラーも公開。
-
2025.11.5インフォメーションプレスリリース■■ノニラヤの「読経オーディション」の結果発表
-
2025.10.1プレスリリース弊社が手掛ける新作和風ホラーゲーム「■■ノニラヤ」の発売日が決定しました