Phasor 3.1.1
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, 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 int eval(VM *vm, const std::string &script);
28
29 private:
30 static Value runScript(const std::vector<Value> &args, VM *vm); // Run script on independent VM
32 std::vector<uint8_t> m_bytecodeData;
33 std::string m_script;
34 std::unique_ptr<VM> m_vm;
35 int m_argc;
36 char **m_argv;
37};
38
39} // namespace Phasor
void addNativeFunction(const std::string &name, void *function)
static Value runScript(const std::vector< Value > &args, VM *vm)
std::unique_ptr< VM > m_vm
NativeRuntime(const std::vector< uint8_t > &bytecodeData, int argc, const char **argv)
static int eval(VM *vm, const std::string &script)
std::vector< uint8_t > m_bytecodeData
Virtual Machine.
Definition VM.hpp:30
A value in the Phasor VM.
Definition Value.hpp:67
The Phasor Programming Language and Runtime.
Definition AST.hpp:11
Complete bytecode structure.
Definition CodeGen.hpp:47