From: wanowa.kimura@... (kimura wataru) Date: 2003-04-28T23:41:19+09:00 Subject: [ruby-list:37632] Re: net/imap のTHREAD Extension 対応  木村といいます。  procの箇所は、気になっていたとこなので解決策ありがとうございます。 で、前田さんのコードを私の環境で試してみました。 > class ThreadTree > attr_reader :root, last > last -> :last  だけ修正すればよさそうです。  単純にprocをなくしてもまあいいかなとも思いましたが、 when T_NUMBER のところがちょっと読みづらいですね。 --- def thread_branch(token) rootmember = nil lastmember = nil while true shift_token # ignore first T_LPAR token = lookahead case token.symbol when T_NUMBER # new member newmember = ThreadMember.new(number, []) if rootmember.nil? rootmember = newmember else lastmember.children << newmember end lastmember = newmember when T_SPACE # do nothing when T_LPAR if rootmember.nil? # dummy member lastmember = rootmember = ThreadMember.new(nil, []) end lastmember.children << thread_branch(token) when T_RPAR break end end return rootmember end --- -- kimura wataru