我使用Text.ParserCombinators.Parsec和Text.XHtml解析输入并获取HTML输出。Parsec Haskell列表
如果我输入的是:
* First item, First level ** First item, Second level ** Second item, Second level * Second item, First level
我的输出应该是:
<ul><li>First item, First level <ul><li>First item, Second level </li><li>Second item, Second level </li></ul></li><li>Second item, First level</li></ul>
我写了这一点,但显然不递归工作
list= do{ s <- many1 item;return (olist << s) } item= do{ (count 1 (char '*')) ;s <- manyTill anyChar newline ;return (li << s) }
任何想法? 递归可以超过两个级别
谢谢!
谢谢!但当我做 'parse(list 1)“foo”“* a \ n ** a 1 \ n ** a 2 \ n * b \ n ** b 1 \ n ** b 2 \ n”' 返回
@马丁:呸,你说得对。我在测试时没有仔细阅读输出。 – sepp2k 2010-04-24 18:31:39
你能帮我改进输出吗? 谢谢! – Martin 2010-04-24 18:36:53