Open owestphal opened 4 months ago
Konkret bereits in LogicTasks.Syntax.TreeToFormula.partialGrade
könnte vielleicht tokenSequence
noch durch einen Parser ersetzt werden, der zusätzlich bereits "die Klammern zählt", der also mit einer aussagekräftigen Fehlermeldung reagiert, wenn es in einem Präfix der Eingabe mehr schließende als öffnende Klammern gibt, sowie wenn es in der gesamten Eingabe mehr öffnende als schließende Klammern gibt.
Das würde natürlich bedeuten, dass in https://github.com/fmidue/logic-tasks/blob/13095f3ddb62164f53822a1d9685d96287c29ab9/src/LogicTasks/Syntax/TreeToFormula.hs#L82-L87 statt der err
-Message des "Hauptparsers" doch (auch oder nur?) die Fehlermeldung des "Hilfsparsers" auszugeben wäre.
Das ist ja aber vielleicht sowieso sinnvoll? Also wenn etwa schlicht ein Symbol falsch geschrieben ist (<==>
statt <=>
), mag bereits der tokenSequence
-Hilfsparser vielleicht eine bessere Fehlermeldung haben als der eigentliche TreeFormulaAnswer
-Hauptparser?
Oben vorgeschlagene Anpassungen/Verfeinerungen könnten jetzt zumindest teils durch Veränderungen an (oder alternativ verwendeten Funktionen zu) folgendem umgesetzt werden: https://github.com/fmidue/logic-tasks/blob/ec12c66fdcde7087b65c8d663b65698944a1de10/src/Formula/Parsing/Delayed.hs#L47-L63
und/oder Aufrufstellen wie: https://github.com/fmidue/logic-tasks/blob/ec12c66fdcde7087b65c8d663b65698944a1de10/src/LogicTasks/Syntax/DecomposeFormula.hs#L86
Durch #125 kann jetzt in den Grading-Funktionen jeweils der verwendete Parser individuell gewählt werden bzw mehere verschiedene Parser stufenweise hintereinander geschaltet werden (siehe Skizze in #83 und
partialGrade
inLogicTasks.Syntax.TreeToFormula
).Nach dem selben Schema können sicherlich auch in einigen anderen Aufgabentypen die Parserfehlermeldungen verbessert werden.