6 #include "../src/expression.h"
16 void *(*copy )(void *data);
17 void (*delete)(void *data);
18 char *(*print )(void *data);
27 typedef struct UwUVMArgs
30 UwUVMValue **evaluated;
31 struct UwUVMExpression *unevaluated;
32 struct UwUVMArgs *super;
35 typedef UwUVMValue (*UwUVMNativeFunction)(UwUVMArgs *args);
42 struct UwUVMExpression *plain;
43 UwUVMNativeFunction native;
47 typedef struct UwUVMExpression
54 UwUVMFunction *function;
55 struct UwUVMExpression *args;
60 UwUVMFunction *ref_value;
67 UwUVMFunction *main_function;
68 UwUVMFunction **functions;
74 void uwuvm_free_value(UwUVMValue value);
75 void uwuvm_free_args(UwUVMArgs *args);
76 UwUVMValue uwuvm_copy_value(UwUVMValue value);
77 UwUVMValue uwuvm_get_arg(UwUVMArgs *args, size_t i);
78 UwUVMValue uwuvm_evaluate_expression(UwUVMExpression *expression, UwUVMArgs *args);
79 UwUVMValue uwuvm_run_function(UwUVMFunction *function, UwUVMArgs args);