このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/php/1168450843/480
#  phpのクラスファイルの特定の関数を正規表現で抜き出したいのですが可能でしょうか? 
#   
#     例 class.test.php から public function test($a){ 本文 } 
#   
#  スケルトンコードの場合簡単に抜き出せるのですが、 
#  本文中にif,swichなどで } が存在した場合どうすれば良いのか悩んでいます。 
# 
# 

'function定義で{ } で括られた本文を取り出す。本文中にif,swichなどで } が存在した場合どうするか'(_文字列,_前文字列,_本文,_後文字列) :-
        atom_chars(_文字列,Chars),
        append(L0,[f,u,n,c,t,i,o,n,' '|R1],['{'|R2],Chars),
        \+(append(_,['{'|_],R1)),
        括弧が閉じられるまで切り取る(R2,L,R3),
        append([_],L1,[_],L11),
        concat_atom(L11,_本文),
        concat_atom(['}'|R3],_後文字列),
        append(L0,[f,u,n,c,t,i,o,n,' '|R1],['{'],L01),
        concat_atom(L01,_前文字列).
        
括弧が閉じられるまで切り取る(['}'|R],[],['}'|R]) :- !.
括弧が閉じられるまで切り取る(['{'|R1],L,R) :-
        括弧が閉じられるまで切り取る(R1,L1,['}'|R2]),
        括弧が閉じられるまで切り取る(R2,L2,R),
        append(['{'|L1],['}'|L2],L),!.
括弧が閉じられるまで切り取る([A|R1],[A|R2],R) :-
        括弧が閉じられるまで切り取る(R1,R2,R).