Thank you very much, I am making customize the code but when I change this part from > str.scan(/^\s*function\s*([^(]+)\(([^)]+)/).map do |name,args| to /procedure|function\s+(\w+)([^\s(]+)\s*\(([^)]+)\)\s*:\s*(\S+)\s*;\s*^\s*var\s*$(.*?)^begin/xm i could`t get the args name. an the results like this: THE FUNCTIONS FOUND WERE: signature: function ExecMain( .GetApiErrorMessage ) name: ExecMain number of args: 1 list of args: .GetApiErrorMessage : signature: function THandle( .SetPrivilege ) name: THandle number of args: 1 list of args: .SetPrivilege : signature: function Privileges( .SetPrivilege ) name: Privileges number of args: 1 list of args: .SetPrivilege : I think something changing somewhere.. -- Posted via http://www.ruby-forum.com/.