我想为Jade的一个子集编写一个简单的解析器,生成一些XmlHtml以供进一步处理。
解析器非常简单,但与Parsec一样,有点长。因为我不知道是否允许我发布这么长的代码帖子,所以我在这里有完整的工作示例。
我以前涉足过 Parsec,但很少成功。现在,我不太明白为什么它似乎吞下了以下几行。例如,jade 的输入
.foo.bar
| Foo
| Bar
| Baz
用 测试parseTest tag txt
,返回:
Element {elementTag = "div", elementAttrs = [("class","foo bar")], elementChildren = [TextNode "Foo"]}
我的解析器似乎能够处理任何类型的嵌套,但绝不会超过一行。我错过了什么?