#include #include "finalize.h" #include "sym.h" #include "ustr.h" void assignOrInsert(const struct UStr *identifier, double value) { SymAdd(identifier)->value = value; } void lookup(const struct UStr *identifier) { const struct Sym *found = SymFind(identifier); if (found) { printf("%s = %lf\n", found->identifier->cstr, found->value); } else { printf("%s not defined\n", identifier->cstr); } } int main(void) { // x = 42; assignOrInsert(UStrAdd("x"), 42); // x = 2; assignOrInsert(UStrAdd("x"), 2); // y = 5; assignOrInsert(UStrAdd("y"), 5); // add symbol with default value SymAdd(UStrAdd("a")); // lookup some symbols lookup(UStrAdd("a")); lookup(UStrAdd("x")); lookup(UStrAdd("y")); lookup(UStrAdd("z")); finalize(); }