🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ScriptExecutor.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstScript/Value.hpp"
25#include <string>
26
27AST_NAMESPACE_BEGIN
28
37{
38 ePython,
39 eMATLAB,
41 eJScript,
42 eVBScript,
43 eJulia,
44 eLua,
46};
47
48
49AST_SCRIPT_API std::string toString(EScriptLanguage type);
50
51class ScriptExecutor;
52class Variable;
53
58AST_SCRIPT_CAPI ScriptExecutor* aNewScriptExecutor(EScriptLanguage type);
59
60
64{
65public:
66 const std::string& error() const { return error_; }
67 Value* value() const { return value_.get(); }
68
69 std::string error_;
71};
72
79class AST_SCRIPT_API ScriptExecutor
80{
81public:
84 virtual ~ScriptExecutor() = default;
85
89 virtual errc_t initialize() = 0;
90
93 virtual void finalize() = 0;
94
100 virtual errc_t execute(StringView script, ScriptResult* resultOut=nullptr) = 0;
101
106 virtual errc_t evaluate(StringView expression, ScriptResult* resultOut=nullptr);
107
108
113 errc_t execute(StringView script, std::string* error);
114
115
120 virtual std::string getLastError() const = 0;
121
126 virtual errc_t setVariable(StringView name, StringView value) = 0;
127 virtual errc_t setVariable(StringView name, double value) = 0;
128 virtual errc_t setVariable(StringView name, int value) = 0;
129 virtual errc_t setVariable(StringView name, bool value) = 0;
130 errc_t setVariable(Variable* var);
131
136 virtual errc_t getVariable(StringView name, std::string& value) const = 0;
137 virtual errc_t getVariable(StringView name, double& value) const = 0;
138 virtual errc_t getVariable(StringView name, int& value) const = 0;
139 virtual errc_t getVariable(StringView name, bool& value) const = 0;
140 errc_t getVariable(Variable* var);
141};
142
143
146AST_NAMESPACE_END
脚本执行器,用于执行外部脚本
定义 ScriptExecutor.hpp:80
virtual std::string getLastError() const =0
获取最近一次执行脚本时的错误信息
virtual errc_t execute(StringView script, ScriptResult *resultOut=nullptr)=0
执行脚本语句
virtual errc_t initialize()=0
初始化脚本执行器
virtual errc_t setVariable(StringView name, StringView value)=0
设置脚本执行器的变量
virtual ~ScriptExecutor()=default
析构函数
virtual errc_t getVariable(StringView name, std::string &value) const =0
获取脚本执行器的字符串变量值
virtual void finalize()=0
结束脚本执行器
脚本执行结果
定义 ScriptExecutor.hpp:64
SharedPtr< Value > value_
返回值
定义 ScriptExecutor.hpp:70
std::string error_
错误信息
定义 ScriptExecutor.hpp:69
共享指针
定义 SharedPtr.hpp:33
值对象基类
定义 Value.hpp:43
变量
定义 Variable.hpp:40
EScriptLanguage
脚本类型
定义 ScriptExecutor.hpp:37
@ eJScript
JScript 脚本
@ eMATLAB
MATLAB 脚本
@ ePython
Python 脚本
@ eVBScript
VBScript 脚本
@ eJavaScript
JavaScript 脚本
@ eAstScript
AstScript 脚本
@ eJulia
Julia 脚本