プログラミング言語用のパーサーを作成する必要があります。これまでのところ、細かい部分を除いて、95%完了しています。
この言語で書かれたプログラムの構造は次のとおりです。
outputs
inputs
expressions
要件は、出力を入力と混合できないことです。例えば:
x := output of int;
y := output of in;
.....
z := input of int;
t := input of in;
.....
expressions
単一の出力を問題なく解析できますが、(many1出力)を使用して複数の出力を許可しようとすると、入力を出力として解析しようとするため、機能しません。
私のメインパーサーは次のようになります。
prog =
do outs <- many1 output
ins <- many1 input
exs <- expressions
eof
return (Prog outs ins exs)
簡単そうに見えますが、いろいろ試してみましたが、うまくいきません。助けてください。