Jadeのサブセット用の単純なパーサーを作成し、さらに処理するためにいくつかのXmlHtmlを生成したいと考えています。
パーサーは非常に単純ですが、Parsecと同様に少し長くなります。このような長いコードの投稿を許可されているかどうかわからないので、ここに完全な動作例があります。
以前に Parsec に手を出したことがありますが、成功することはめったにありません。今のところ、次の行を飲み込むように見える理由がよくわかりません。たとえば、
.foo.bar
| Foo
| Bar
| Baz
でテストするとparseTest tag txt
、次のように返されます。
Element {elementTag = "div", elementAttrs = [("class","foo bar")], elementChildren = [TextNode "Foo"]}
私のパーサーは、あらゆる種類のネストを処理できるようですが、複数の行を処理することはできません。私は何を取りこぼしたか?