異なるタイプの用語に対して2つのパーサーがあります。構文解析中に異なるタイプの用語を分割する
a :: Parser A
b :: Parser B
私は、これらの用語のシーケンスを表すデータ型を持っています。
data C = C [A] [B]
私の入力は混合用語のシーケンスである場合は、その順序を維持し、B
sからA
Sを分離するためにc :: Parser C
を書くの良い方法は何ですか?
data A = A Char
data B = B Char
a = A <$> oneOf "Aa"
b = B <$> oneOf "Bb"
"abAbBBA"
シーケンスaAA
とbbBB
に解析します:たとえば、これらの定義が与えられました。 StateT
を使用する必要があると感じていますが、具体的な内容が不明で、正しい方向にプッシュするだけです。
非常にありがとうございます。私は間違いなく私の心の中でそれをovercomplicatedていた。 –