gonzuiでperlスクリプトを解析(失敗)

sos3(Script of Saga III)のソースコードを追ってみたのだが、
読んでいる内にめんどくさくなり、解析かけてしまえと思い、gonzuiを使うことにした。

ホントはGlobal(というか、htags)を使いたかったのだけど、対応していないので致し方ない。

VM上のLinuxに、既にRubyは入っていたので、ruby-bdbをyumで拾い、
gonzuiを落として展開、いつものようにconfigure、makeで完了。

ところが、perlが解析されない。。。

ぁ、perlの解析にはperlPPIモジュールが必要なのね。

ってぇことで、PPIyumで取ってきて、生成したものを削除した後に、再度configure、make。

[do@localhost gonzui]# ./gonzui-import --list-formats
Autoconf     autoconf
Automake     automake
BrainFuck    bf
C#           csharp
C/C++        c
CSS          css
D            d
Eiffel       eiffel
Emacs Lisp   elisp
Io           io
Java         java
JavaScript   js
Lua          lua
PHP          php
Perl         perl
Python       python
RPM SPEC     rpmspec
Ruby         ruby
Scheme       scheme
Text         text
shell script sh

OK。組み込まれた模様。

だけど、sos3はperlで書かれているが、.cgiという拡張子になっている。
CGIゲームだしね。

gonzuiは、デフォのままだと.cgiファイルをperlと認識してくれない(当然か)

そこで、gonzuiを展開したディレクトリ下にある、langscan/perl.rbに、対象とする拡張子".cgi"を加える

langscan/perl.rb

    def extnames
      [".cgi", ".pl", ".PL", ".pm", ".t" ] # XXX remove ".t"
    end

これで、.cgiファイルがperlとして解析される……はずなのだが、うまくいかない。

gonzui-importを-vオプション付きで実行してやると、

(ファイル名) fallback to LangScan::Text

なんてエラー? が出ている。
どうやら、解析に失敗してデフォルトの解析エンジンが使われた模様。

原因分からず。
http://blog.bulknews.net/mt/archives/001598.html で宮川さんが

PPI ではマルチバイト文字がソースコードにはいっているとこける

と言っているので、それが原因かも。

くはぁ。