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