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; };