#include #include #include "uclisp.h" #include "state.h" #include "internal.h" #include "utility.h" #include "builtins.h" int main(int argc, const char **argv) { (void) argc, (void) argv; struct ucl_state *state = ucl_state_create(); ucl_state_put(state, "+", ucl_builtin_create(ucl_builtin_add)); ucl_state_put(state, "-", ucl_builtin_create(ucl_builtin_sub)); ucl_state_put(state, "*", ucl_builtin_create(ucl_builtin_mul)); ucl_state_put(state, "/", ucl_builtin_create(ucl_builtin_div)); ucl_state_put(state, "%", ucl_builtin_create(ucl_builtin_mod)); struct ucl_object *sexp = ucl_parse(argv[1]); struct ucl_object *result = ucl_evaluate(state, ucl_car(sexp)); assert(result != NULL); assert(result->type == UCL_TYPE_INT); printf("%d\n", result->integer); return 0; }