marcin(a)studio4plus.com

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