Einfache Grammatik für Mathematische Ausdrücke
-
Ich habe schon einiges an Zeit im Netz damit verschwendet, eine einfache Grammatik, welche mathematische Ausdrücke und zuweisungen abdeckt zu finden.
Hat jemand so etwas zufällig herumliegen?
Irgendso was in der Art
expression = (+|-) expression ...
Was behandelt werden sollte:
Vorzeichen, +,-, *, /, funktionsaufrufe (sin, cos), variablen dürfen vorkommen, klammerungen
-
Das ist ja praktisch die gesamte Mathematik einer üblichen Programmiersprache. Beispielsweise kannst du fast komplett Kapitel 5 aus dem C++-Standard als Vorlage nehmen, brauchst nur programmierspezifischen Kram wie Casts rausnehmen. Oder so ziemlich jede andere Sprache mit ähnlicher Syntax.
Ob das dann noch einfach ist, ist eine andere Frage. Kommt drauf an, was du unter "einfach" verstehst.
-
Bei meinem Parser für mathematische Formeln habe ich dafür eine einfache EBNF-Grammatik dargestellt (einzig die Terminal-Symbole Number, Variable, Constant und identifier müßtest du für dich noch genauer spezifizieren).
Für Funktionen mit mehr als einem Parameter müßtest du dies noch abändern in:Function = identifier '(' Expression { ',' Expression } ')'
(Funktionen ohne Parameter, also z.B. f() [=> Konstanten] sind hierbei nicht erlaubt)
Meine Parser-Implementierung kann aber auch Funktionen mit mehreren Parametern...
-
Ich werfe mal ein Standard-Werk dazu in den Raum.: