libsexpr - przykład użycia
Dla przejrzystości pominięto sprawdzanie błędów.
#include <stdio.h>
#include "sexpr.h"
main ()
{
char *tekst;
int i;
eTree_t *wyrazenie;
eVariables_t zmienne;
eValue_t wartosc;
/* tu wczytujemy tekst wyrażenia do "tekst" */
tekst = "x^2 + y^2";
zmienne = eInitVar(); /* tworzymy pustą listę zmiennych */
wyrazenie = eParse(&zmienne,
tekst,
NULL, /* związane z obsługą błędów... */
NULL, /* ...pomijamy w tym przykładzie */
1); /* czy dodać nowe zmienne? tak */
for(i = 0; i < eGetNumVars(zmienne); i++) {
printf("Podaj wartość zmiennej %s: ", eGetVarName(zmienne, i));
scanf("%lf", eGetVarPtr(zmienne, i));
}
/* obliczamy wartość */
printf("Wartość wyrażenia: %f\n", eEval(&zmienne, wyrazenie));
/* czyścimy po sobie */
eTreeDestroy(wyrazenie);
eDestroyVar(zmienne);
return 0;
};
