aboutsummaryrefslogtreecommitdiff
path: root/api/vm.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/vm.h')
-rw-r--r--api/vm.h23
1 files changed, 11 insertions, 12 deletions
diff --git a/api/vm.h b/api/vm.h
index 81465f8..fc761d3 100644
--- a/api/vm.h
+++ b/api/vm.h
@@ -3,7 +3,6 @@
#include <stddef.h>
#include <stdbool.h>
-#include "../src/expression.h"
typedef enum
{
@@ -11,6 +10,16 @@ typedef enum
MODULE_NATIVE,
} UwUVMModuleType;
+typedef enum
+{
+ EX_UNINIT,
+ EX_INTLIT,
+ EX_STRLIT,
+ EX_ARGNUM,
+ EX_FNNAME,
+ EX_FNCALL,
+} UwUVMExpressionType;
+
typedef struct
{
void *(*clone)(void *data);
@@ -46,7 +55,7 @@ typedef struct
typedef struct UwUVMExpression
{
- ExpressionType type;
+ UwUVMExpressionType type;
union
{
struct
@@ -61,16 +70,6 @@ typedef struct UwUVMExpression
} value;
} UwUVMExpression;
-typedef struct
-{
- void *api_library;
- UwUVMFunction *main_function;
- UwUVMFunction **functions;
- size_t num_functions;
- void **libraries;
- size_t num_libraries;
-} UwUVMProgram;
-
UwUVMValue uwuvm_clone_value(UwUVMValue value);
void uwuvm_delet_value(UwUVMValue value);
char *uwuvm_print_value(UwUVMValue value);