Phasor 2.2.0
Stack VM based Programming Language
Loading...
Searching...
No Matches
NativeRuntime.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4#include <cstdint>
5#include <string>
8
9namespace Phasor
10{
11
19{
20 public:
21 NativeRuntime(const std::vector<uint8_t> &bytecodeData, const int argc, const char **argv);
22 NativeRuntime(const std::string &script, int argc, char **argv);
24 int run();
25 void addNativeFunction(const std::string &name, void *function);
26
27 static void eval(VM *vm, const std::string &script);
28
29 private:
31 std::vector<uint8_t> m_bytecodeData;
32 std::string m_script;
33 std::unique_ptr<VM> m_vm;
34 int m_argc;
35 char **m_argv;
36};
37
38} // namespace Phasor
void addNativeFunction(const std::string &name, void *function)
NativeRuntime(const std::vector< uint8_t > &bytecodeData, const int argc, const char **argv)
std::unique_ptr< VM > m_vm
static void eval(VM *vm, const std::string &script)
std::vector< uint8_t > m_bytecodeData
Virtual Machine.
Definition VM.hpp:18
The Phasor Programming Language and Runtime.
Definition AST.hpp:8
Complete bytecode structure.
Definition CodeGen.hpp:201