Ruby初心者スレッドPart5
■ このスレッドは過去ログ倉庫に格納されています
0883デフォルトの名無しさん
2006/05/13(土) 20:33:57エレガントではないが、適当に書いてみた。
def parse(str)
result = []
while not str.empty?
case str
when /¥A¥]/
str = $'
return result, str
when /¥A¥[/
ary, str = parse($')
result << ary
when /¥A[^ ¥[¥]]+/
result << $&
str = $'
when /¥A +/
str = $'
end
end
return result, str
end
result, str = parse("[S [NP John] [VP [V hits] [NP Mary]]]")
p(result[0]) # => ["S", ["NP", "John"], ["VP", ["V", "hits"], ["NP", "Mary"]]]
■ このスレッドは過去ログ倉庫に格納されています