Files
uclisp/src/main.c

30 lines
851 B
C

#include <assert.h>
#include <stdio.h>
#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;
}