aboutsummaryrefslogtreecommitdiff
path: root/src/vm/runner/runner.h
blob: e81aed7f26ae35075130650ba59e3b4128870eea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once

#include <compiler/code_generator/code_generator.h>

typedef void (*BuiltinFunction)(void ***restrict stack,
                                size_t *restrict stack_inserted);

extern const BuiltinFunction BUILTIN_FUNCTIONS[];
extern const char *BUILTIN_FUNCTION_NAMES[];
extern const size_t BUILTIN_FUNCTIONS_SIZE;

extern bool runner(Instructions instructions);

extern bool runInstruction(Instruction instruction, void ***restrict stack,
                           size_t *restrict stack_size,
                           size_t *restrict stack_inserted);

extern void print(void ***restrict stack, size_t *restrict stack_inserted);