J'ai deux parseurs packrat à scala:Construire une expression rationnelle parseurs packrat à Scala
val symbols : PackratParser[String] =
"{" | "}" | ">"
val keywords : PackratParser[String] =
"BOOL" | "INT"
Je veux construire un analyseur qui peut reconnaître si une instruction est composée d'un ou plusieurs de ces deux parseurs. La façon dont je le fais habituellement est:
val statement : PackratParser[String] =
regex("[symbols | keywords]+".r)
Mais cela ne fonctionnerait pas parce qu'ils pensent que je veux que les véritables « symboles » ou jeton « keywords » ... Quelqu'un peut-il aider?
ah ok ... mais comment faire en sorte qu'il puisse y avoir une ou plusieurs de ces deux choses? J'ai regardé autour de moi et je n'ai trouvé aucun site expliquant cela –
La documentation de 'rep1' dit:" Un générateur d'analyseur pour les répétitions non vides rep1 (p) utilise à plusieurs reprises p pour analyser l'entrée jusqu'à ce que p échoue - - p doit réussir au moins une fois (le résultat est une liste des résultats consécutifs de p) "Est-ce que c'est ce que vous voulez? Sinon, donnez quelques exemples et résultats attendus. –
Oui, c'est ce que je voulais! Merci beaucoup! Je n'ai pas vu ça du tout (même dans le livre Scala blanc!) Merci! –