まつもと ゆきひろです

In message "[ruby-list:5657] Is there alternative way?"
    on 97/12/12, KIMURA Koichi <kkimura / pure.cpdc.canon.co.jp> writes:

|木村です。

|一応期待通りの動作はするのですが、もうちょっとうまい書き方がある
|のではないかという気がしてなりません^^; こうした方が良い。という
|点があれば指摘して下さい。

こんな感じはどうでしょう?

  printf "; %s\n", ARGV[0]
  prevline = ""

  while gets
    $_.chop!
    if /^([A-Za-z_][A-Za-z0-9_]*)\(/
      funcname = $1
      if /^static/ !~ prevline
        print funcname, "\n";
      end
    end
    prevline = $_
    if $<.eof           # ←この辺がコツ
      printf "; %s\n", ARGV[0] if ARGV[0]
      prevline = ""
    end
  end

ちょっと苦しいかな.4行しか小さくなってないし.

                                まつもと ゆきひろ /:|)