Formelparser gesucht (ernst gemeint)
-
In der funktion.cpp Zeile 323 fehlt IMHO auch noch ein "case 'e':", falls du dich wundern solltest, warum cos nicht funktioniert...
Und ich glaube so Sachen wie -x^2 werden falsch aufgelöst.
Oder welche Bugs hast du sonst noch so gefunden?
-
Matthew77 schrieb:
@SirLant: ob Du's glaubst oder nicht, es gibt Situationen, da möchte man sein Programm unter purem MS-DOS laufen lassen, da muss man eben auf "scheintote" Compiler setzen...
Weißt du überhaupt, wofür <map> da ist? Gehört zur STL, und sollte dein
Compiler tatsächlich damit ein Problem haben, ist das gar nicht gut...
-
Ändert ja nix daran, dass dieser Compiler AFAIK etwa 10 Jahre auf dem Buckel hat
Eine Alternative für DOS ist übrigens der DJGPP. Der braucht zwar einen DOS-Extender und läuft auch erst ab 386er, aber Watcom meines Wissens auch, von daher ...
Und: DJGPP kann u.a. <map>
-
STLPort funktioniert mit dem OpenWatcom Compiler. Ohne Gewähr, habe ich nur gelesen, nicht selbst ausprobiert.
-
Erstmal danke für die Beiträge!
Aber: 1. leider MUSS ich den Watcom benutzen
2. zu den Bugs vom Formelparser den fubar empfohlen hat:
den cosinus bug hatte ich auch gesehen, daneben funktionierte auch tan nicht, weil irgendwas vergessen wurde. Dass -x^2 falsch aufgelöst wird war mir nicht aufgefallen, aber gut, dass Du es sagst.
Ich fürchte ich werde wohl kaum drum herum kommen, das Rad neu zu erfinden! Es ist einfach unglaublich, dass man für so eine Standardaufgabe keine brauchbare Lösung im Netz finden soll (außer der, die <map> benutzt versteht sich).
Bitte belehrt mich doch eines besseren!MfG Matthew
-
Was genau soll so ein Formelparser denn machen? Klar, parsen, aber dann ... welche semantischen Aktionen? Soo Standard scheint mir das nicht zu sein, dass es da eine Universallösung geben könnte. BTW könntest du auch einfach die map durch eine eigene Klasse ersetzen. Vielleicht nicht die effizienteste Lösung, aber für den Anfang ...
-
und warum nimmst du nicht einfach den Borland Compiler. Damit kannst du auch DOS progs erstellen.
-
1. ICH MUSS WATCOM BENUTZEN
2. Ein Formelinterpreter, der mir, wenn ich ihm z.B. den String "sqrt(4)*-3.2" übergebe einen doublewert von "-1.2" ausspuckt IST EINE STANDARDLÖSUNG. Und genau das finde ich nicht in der Form, wie ich es gerne hätte (nämlich Watcom-Compatible und ohne viel schnickschnack).
-
Du könntest die Map-Klasse nachbauen, wie oben gesagt, aber du musst dann wohl
auch noch einige Sachen im Parser ändern, vor 10Jahren gab es afaik noch keine
namespaces und templates.
Aber besser als das Rad ganz neu zu erfinden ist es alle mal und wenn du das
geändert hast, kannst du der Welt ja ne Freude machen und den Parser allen zur
Verfügung stellen
-
Hi,
wenn du Watcom benutzen sollst, dann ist das doch sicherlich eine (Haus)aufgabe und die sollst du selbst machen!
ChrisM
-
Na die Einschränkung könnte auch ein altes Projekt sein das überarbeitet werden muss. Muß ja nich gleich ne Hausaufgabe sein. (Muss mich ja selbst mit nem uralten DOS Compiler rumschlagen....)
-
es ist völlig richtig, dass es sich um ein altes Projekt handelt und keineswegs um eine Hausaufgabe o.ä., dass nur so nebenbei. Ansonsten wollte ich noch sagen, dass mir "warp" (s.u.) netterweise den Quellcode seiner älteren Version gemailt hat. Dieser benutzte zwar auch noch ein paar Sachen, die nicht "Watcom kompatibel" sind, aber es scheint, als könnte ich die notwendigen Änderungen selbst machen.
Zusammenfassend möchte ich sagen: es ist erstaunlich wie aufwendig es ist trotz Internet und modernsten Suchmaschinen die Komplettlösung für ein Standardproblem zu bekommen.CIAO,
Matthew
-
Wenn man sich ungeschinkt anstellt
www.google.de => "Math Parser" C++ => http://www.ucalc.com/mathparser/index.html
:p