Phasor 3.3.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>
9namespace Phasor
10{
11
19{
20 public:
21 NativeRuntime(const std::vector<uint8_t> &bytecodeData, const int argc, const char **argv);
22 NativeRuntime(const Phasor::Bytecode &bytecode, const int argc, const char **argv);
23 NativeRuntime(const std::string &script, const int argc, const char **argv);
24 NativeRuntime(const Phasor::VM &vm, const std::string &script, const int argc, const char **argv);
25 NativeRuntime(Phasor::VM *vm, const std::vector<uint8_t> &bytecodeData, const int argc, const char **argv);
27 int run();
28 int runFunctionInt(std::string functionName);
29 std::optional<std::string> runFunctionString(std::string functionName);
30 void addNativeFunction(const std::string &name, void *function);
31
32 static int eval(VM *vm, const std::string &script);
33
34 private:
35 std::shared_ptr<Phasor::VM> m_vm;
37 std::vector<uint8_t> m_bytecodeData;
38 std::string m_script;
39 int m_argc;
40 char **m_argv;
41};
42
43} // namespace Phasor
void addNativeFunction(const std::string &name, void *function)
NativeRuntime(const std::vector< uint8_t > &bytecodeData, const int argc, const char **argv)
int runFunctionInt(std::string functionName)
std::shared_ptr< Phasor::VM > m_vm
static int eval(VM *vm, const std::string &script)
std::optional< std::string > runFunctionString(std::string functionName)
std::vector< uint8_t > m_bytecodeData
Virtual Machine.
Definition VM.hpp:33
The Phasor Programming Language and Runtime.
Definition AST.hpp:12
Complete bytecode structure.
Definition CodeGen.hpp:50