<< Home

MBSPar

MBSPar 1.1.0 runterladen

MBSPar ist ein Parser , welcher mathematische Terme auszuwerten imstande ist . Er wird nur für Entwickler interessant sein , da er eine Library darstellt , die alleine nicht lauffähig ist. Es ist vorgesehen , dass dieser Parser in andere Programme integriert wird ( z.B. MBSPlot ).

Interface

ZZ. werden folgende Funktionen als Schnittstelle zur Verfügung gestellt:

Compute(char *) berechnet den als Arument übergebenen Term
DefVar(char *v,long) Definiert die Variable  v neu oder um
GetiError() Liefert Fehlercode
InitParser() Initialisiert den Parser

 

Compute(char *)

Diese Funktion berechnet den als Zeiger auf ein char-Array (einen String) übergebenen Term . Dieser wird bei der Berechnung nicht verändert , kann also später wiederverändert werden.
Der Term muss dabei den unten angeführten REGELN entsprechen . 

DefVar(char *,long)

Dieser Funktion kommt die Aufgabe der Variablenverwaltung zu . Dazu wird ihr der Name einer Variable als Zeiger auf ein char- Array sowie der Wert der Variable übergeben .Ist die Variable noch nicht bekannt , wird sie , sofern noch Speicher verfügbar ist, neu erstellt , ansonsten mit dem Wert neu definiert.

GetiError()

Tritt ein Fehler bei der Berechnung auf , so liefert Compute() den Wert E_MAYBEERROR zurück . Dies besagt jedoch nur , dass ein Fehler aufgetreten sein könnte . Um zu überprüfen , ob und um welchen Fehler es sich handelt , wird die Funktion GetiError() aufgerufen : Im Fehlerfall liefert sie (als int ) den Fehlercode zurück , ansonsten E_OK.Die Fehlerkonstanten sind in der Headerdatei ParError.h definiert.

InitParser()

Diese Funktion dient der Initialisierung des Parsers. Sie sollte vor allen anderen MBSPar - Funktionen aufgerufen werden , allerdings ist dies , wenn keine Variablen oder Konstanten verwendet werden sollen , nicht erforderlich. 

 

Regeln zur Beschaffenheit eines Terms

MBSPar kann Terme berechnen , die 

        1. algebraisch korrekt sind ,
        2. folgende Rechenzeichen beinhalten : +-*/^(potenzieren) $(radizieren)
        3. folgende Funktionen beinhalten : sin() cos() tan() log() rnd() (Zufallsgenerator)
        4. folgende Konstanten beinhalten : e (eulerscheZahl) pi(Kreiszahl)

Variablennamen können theoretisch , ebenso wie Term , maximal 255 Zeichen lang sein

Der Parser ist einfach um andere Funktionen und Konstanten erweiterbar. Siehe hierzu den Quellcode.

Bugs

Es sind keine Bugs bekannt  ,allerdings zeigt sich bei der Verwendung mit MBSPlot ein unerklärliches Fehlverhalten im Bereich der Variablenverwaltung     

Changelog

Dies ist ein Auszug der Changelog - Datei die diesem Programm beiliegt

Version    |                     Aenderungen                                                         | Datum 
========|=================================================|======= 
1.0.0       |    Urversion                                                                                | 11.4.2001
1.1.0       |    *Fehlerbehandlung hinzugefuegt                                              | 20.9.2001 
               |      (parerror.h eingefuegt , iError & GetiError)                          |
               |    *Bug im KLA beseitigt                                                            |
               |      (Klammermatrix jetzt vor rekursivem Aufruf                        | 
               |      gesichert, so dass kein Ueberschreiben )                                 |
               |    *Bug in RemBrackets() beseitigt (Term (9/(4))                        |
               |      zuvor nicht auswertbar)

 

(c)ixtys 18.10.2001