これらの Ruby 式のいずれかを使用するための Haskell Parsec パーサーを作成する方法を見つけようとしています。
hello("test", 'test2')
my_variable
hello(world("test"))
(hello + " " + world)
パーサーがこれらの項目の先頭で解析を開始すると、文字列全体を返し、項目の最後で解析を停止する必要があります。これらの項目のいずれかの後にコンマが続く場合、そのコンマは消費されるべきではありません。
これらのタイプの式のパーサーを作成しようと何度か試みましたが、成功しませんでした。これらの式のサブコンポーネントを解析する必要はありません。完全な AST は必要ありません。これらの種類のチャンクを消費してキャプチャするだけです。
適切なヒューリスティックには、前の識別子に加えて、括弧のバランスを取り、外側のバランスのとれた括弧内のすべてのコンテンツを食べることが含まれる可能性があると思いました。しかし、この方法で動作するパーサーを作成するには、助けが必要です。