私はattoparsec
パーサーを持っていて、それをテストしていますが、パーサーの一部にコメントしてテストを実行すると、パーサーが返されずLeft "parse error at line ..."
、代わりにRight []
.
parseOnly
これ以上入力がないことを明確にするために使用していることに注意してください。
それ以外の場合は、部分的に解析された入力を取得すると便利です。これは間違いなく便利であり、私はそれを持っていることをうれしく思います。ただし、入力全体が消費されていないことをお知らせしたいと思います。たぶん、最後に消費された文字の文字オフセットを取得するか、それが必要な場合は、少なくともオプションが返されLeft
ます。
関連する場合、パーサーはそこにあります。
たとえば、次の行にコメントすると:
<|> PlainText <$> choice (string <$> ["[", "]", "*", "`"])
テストを実行すると、たとえば次のようになります。
1) notes parsing tests parses notes properly
simple test
expected: Right [NormalLine [PlainText "one line* # hello world"]]
but got: Right []
これはそのテストからのものです。