Ich arbeite an einer domänenspezifischen Sprache (DSL) für Nicht-Programmierer. Nicht-Programmierer macht viele Grammatikfehler: sie Schlüsselwörter falsch schreiben, tun sie nicht in der Nähe Klammern, sie Blöcke nicht beenden, usw.Verbessern ANTLR DSL Parse-Fehlermeldung
ich ANTLR bin mit meinem Parser zu erzeugen; Es bietet einen raffinierten Mechanismus für die Behandlung von RecognitionExceptions, um die Fehlerbehandlung zu verbessern. Aber ich finde es ziemlich schwer, einen guten Fehlerbehandlungscode für mein DSL zu entwickeln.
An diesem Punkt überlege ich Möglichkeiten, die Sprache zu vereinfachen, um es mir zu erleichtern, Benutzer mit qualitativ hochwertigen Fehlermeldungen zu versorgen, aber ich bin nicht wirklich sicher, wie das geht. Ich denke, ich möchte die Mehrdeutigkeit von Fehlern irgendwie reduzieren, aber ich bin mir nicht sicher, wie ich diese Idee in einer Grammatik umsetzen soll.
Inwiefern kann ich meine Sprache vereinfachen, um die Syntaxanalysefehler für meine Benutzer zu verbessern?
EDIT: aktualisiert klarstellen, dass ich in einer Weise interessiert bin meine Sprache zu vereinfachen, nicht nur ANTLR Fehlerbehandlung Tipps im Allgemeinen. (Aber danke für diese!)
Können Sie uns mehr Informationen über die Grammatik geben, als sie gerade ist? Wofür ist dein DSL gut und wozu ist es geeignet? –
http://www.choiceofgames.com/blog/choicescript-intro/ Ich werde auf Anhieb darauf hinweisen, dass es nicht das kleinste bisschen kontextfrei ist ... –
Wenn Ihre Benutzer häufige Fehler machen, können Sie Grammatik haben Token-Regeln, die mit dem allgemeinen Fehler übereinstimmen und diese Regeln dann eine Fehlermeldung ausgeben lassen. –