Je dois créer un analyseur pour un langage de programmation. Jusqu'à présent, il est fait à 95%, je dirais, sauf pour un petit détail.Parsec analyser de nombreuses questions
Le programme écrit dans cette langue a la structure suivante:
outputs
inputs
expressions
L'exigence est que les résultats ne peuvent pas être mélangés avec des entrées. Par exemple:
x := output of int;
y := output of in;
.....
z := input of int;
t := input of in;
.....
expressions
je peux analyser une seule sortie très bien, mais si je tente d'utiliser (sortie many1), pour permettre à plusieurs sorties, il ne fonctionne pas parce qu'il essaie d'analyser les entrées comme sorties.
Mon analyseur principal ressemble à ceci:
prog =
do outs <- many1 output
ins <- many1 input
exs <- expressions
eof
return (Prog outs ins exs)
Je sais que cela semble facile, mais j'ai essayé beaucoup de choses et ne peux pas le faire fonctionner. S'il vous plaît aider.
Merci beaucoup. Cela l'a totalement réparé. Je ne me suis pas rendu compte qu'ils commencent tous deux par un ident et qu'il est consommé par l'analyseur de sortie. – HaskellNoob