Je travaille sur un langage spécifique au domaine (DSL) pour les non-programmeurs. Les non-programmeurs font beaucoup d'erreurs grammaticales: ils mal orthographient les mots-clés, ils ne terminent pas les parenthèses, ils ne terminent pas les blocs, etc.Amélioration des messages d'erreur d'analyse syntaxique DSL ANTLR
J'utilise ANTLR pour générer mon analyseur; Il fournit un mécanisme astucieux pour gérer les RecognitionExceptions afin d'améliorer le traitement des erreurs. Mais je trouve qu'il est assez difficile de développer un bon code de gestion des erreurs pour mon DSL. À ce stade, je réfléchis à des moyens de simplifier le langage pour que je puisse plus facilement fournir aux utilisateurs des messages d'erreur de haute qualité, mais je ne suis pas vraiment sûr de la marche à suivre. Je pense que je veux réduire l'ambiguïté des erreurs, mais je ne suis pas sûr de savoir comment mettre en œuvre cette idée dans une grammaire.
De quelles façons puis-je simplifier ma langue pour améliorer les messages d'erreur d'analyse pour mes utilisateurs?
EDIT: Mise à jour pour clarifier que je suis intéressé par les moyens de simplifier ma langue, pas seulement les conseils de gestion des erreurs ANTLR en général. (Bien, merci pour ceux!)
Pouvez-vous nous donner plus d'informations sur la grammaire telle qu'elle est actuellement? A quoi sert votre DSL et de quoi est-il capable? –
http://www.choiceofgames.com/blog/choicescript-intro/ Je signalerai d'emblée que ce n'est pas le moins du monde sans contexte ... –
Si vos utilisateurs font des erreurs courantes, vous pouvez avoir de la grammaire La règle des jetons qui correspondent à l'erreur commune puis affiche ces règles dans un message d'erreur. –