Add 'list' and 'print' builtins
This commit is contained in:
18
src/main.c
18
src/main.c
@@ -12,6 +12,8 @@ int main(int argc, const char **argv) {
|
||||
struct ucl_state *state = ucl_state_create();
|
||||
|
||||
ucl_state_put(state, "let", ucl_builtin_create(ucl_builtin_let));
|
||||
ucl_state_put(state, "print", ucl_builtin_create(ucl_builtin_print));
|
||||
ucl_state_put(state, "list", ucl_builtin_create(ucl_builtin_list));
|
||||
|
||||
ucl_state_put(state, "+", ucl_builtin_create(ucl_builtin_add));
|
||||
ucl_state_put(state, "-", ucl_builtin_create(ucl_builtin_sub));
|
||||
@@ -31,19 +33,9 @@ int main(int argc, const char **argv) {
|
||||
struct ucl_object *sexp = ucl_parse(argv[1]);
|
||||
struct ucl_object *result = ucl_evaluate(state, ucl_car(sexp));
|
||||
|
||||
switch (result->type) {
|
||||
case UCL_TYPE_INT:
|
||||
printf("%d\n", result->integer);
|
||||
break;
|
||||
case UCL_TYPE_STRING:
|
||||
printf("\"%s\"\n", result->string);
|
||||
break;
|
||||
case UCL_TYPE_SYMBOL:
|
||||
printf("%s\n", result->string);
|
||||
break;
|
||||
case UCL_TYPE_ERROR:
|
||||
printf("ERROR: %s\n", result->error);
|
||||
return 1;
|
||||
if (result->type == UCL_TYPE_ERROR) {
|
||||
printf("%s", result->error);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user