構文解析
Tagged:  •  

スクリプト言語や Java が隆盛を極めている昨今の風潮からすると、 あまり流行りでは無いのかもしれませんが、 弊社では C 言語による(そこそこの規模の) 開発案件もコンスタントに手掛けています。

そういった案件で既存のソース(あるいは利用するライブラリ) の調査を行う場合、 文字列ベース(e.g.: grep 結果)ではなく、 C 言語としての文法解釈を経て得られる情報が必要となることもあります。 例えば、 連結操作("##")マクロによるシンボル定義はコード上からは見えない、 といった問題があるためです。

今時は C 言語の字句解析用定義(所謂「lex ソース」) も構文解析用定義(所謂「yacc ソース」ないし「BNF 定義」) も入手可能なのですが、 ではこれだけあれば C 言語のソースを解析可能かというと、 実はそうではありません。

Syndicate content