🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
Variable.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstScript/Expr.hpp"
25#include "AstUtil/StringView.hpp"
26#include "AstUtil/SharedPtr.hpp"
27#include <string>
28
29AST_NAMESPACE_BEGIN
30
37class AST_SCRIPT_API Variable: public Expr
38{
39public:
40 AST_EXPR(Variable)
41
42 Variable(StringView name, Expr* expr=nullptr, bool bind = false);
43 Variable(Expr* expr=nullptr, bool bind = false);
44
47 Value* eval() const final;
48
52 errc_t setValue(Value* val) final;
53
57 errc_t setExpr(Expr* expr);
58
62 errc_t bind(Expr* expr);
63
64
68 std::string getExpression(Object* context=nullptr) const override{return name_;}
69public:
70 const std::string& name() const { return name_; }
71 Expr* expr() const { return expr_.get(); }
72
73protected:
74 std::string name_;
76 bool bind_;
77};
78
79
80AST_NAMESPACE_END
表达式基类
定义 Expr.hpp:39
virtual errc_t setValue(Value *val)
设置表达式的值
定义 Expr.hpp:58
virtual Value * eval() const =0
求值
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81
共享指针
定义 SharedPtr.hpp:33
值对象基类
定义 Value.hpp:36
变量
定义 Variable.hpp:38
SharedPtr< Expr > expr_
变量的值,或者绑定的表达式
定义 Variable.hpp:75
bool bind_
是否与表达式双向绑定
定义 Variable.hpp:76
std::string getExpression(Object *context=nullptr) const override
获取变量的表达式
定义 Variable.hpp:68
std::string name_
变量的名称
定义 Variable.hpp:74