From: Rodrigo Bermejo Date: 2008-04-26T08:50:33+09:00 Subject: Re: Code Parsing Ken Bloom wrote: > On Fri, 25 Apr 2008 10:58:49 -0500, Rodrigo Bermejo wrote: > >> a= 0 { >> } >> The table code could have different number of elements (a,b,c,d). I know >> one approach would be to count the number of brackets found until you >> match your 1st bracket. >> I suspect there can be many elegant solutions to this problem , so any >> charming idea/solution is very welcomed. >> >> -ronnie bermejo. > > Ruby Quiz #155 Parsing JSON (http://www.rubyquiz.com/quiz155.html) dealt > with this. Look there to see whether there are any good ideas there. If > this isn't JSON, then your best bet may be to learn how to use a CFG > parser. Thanks for the pointers Ken. I found strscan ..so my 1st implementation is: require 'strscan' table_file = StringScanner.new( File.read("code") ) while line = table_file.scan_until(/\w+|\W+/) table=line if ( line =~ /Table/ ) and ( /\w+.+\(.+\)/ =~ line = table_file.scan_until(/\{/) ) left_brackets=1 right_brackets=0 table << line temp="" until left_brackets == right_brackets do temp = table_file.getbyte case temp when "}" right_brackets+=1 when "{" left_brackets+=1 end table << temp end puts table puts "*******" end end -- Posted via http://www.ruby-forum.com/.