🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ExprIf.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstScript/Expr.hpp"
25#include "AstScript/ExprBlock.hpp"
26#include "AstUtil/SharedPtr.hpp"
27#include <vector>
28
29AST_NAMESPACE_BEGIN
30
34class AST_SCRIPT_API ExprIf: public Expr
35{
36public:
37 AST_EXPR(ExprIf)
42 using ConditionBranchVector = std::vector<ConditionBranch>;
43
45 ExprIf();
46
47
48 ExprIf(Expr* condition, Expr* block);
49
50
52 ~ExprIf() override = default;
53
56 Value* eval() const override;
57
59 errc_t setValue(Value* val) override;
60
64 std::string getExpression(Object* context=nullptr) const override;
65
69 void addElseif(Expr* condition, Expr* block);
70
73 void setElse(Expr* block);
74
75 const ConditionBranchVector& conditionBranches() const { return conditionBranches_; }
76 Expr* elseBlock() const { return elseBlock_.get(); }
77private:
78 std::vector<ConditionBranch> conditionBranches_;
79 SharedPtr<Expr> elseBlock_;
80};
81
82
83
84AST_NAMESPACE_END
if条件语句表达式
定义 ExprIf.hpp:35
~ExprIf() override=default
析构函数
表达式基类
定义 Expr.hpp:40
virtual errc_t setValue(Value *val)
设置表达式的值
定义 Expr.hpp:56
virtual Value * eval() const =0
求值
virtual std::string getExpression(Object *context=nullptr) const =0
获取表达式的字符串表示
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
共享指针
定义 SharedPtr.hpp:33
值对象基类
定义 Value.hpp:43
定义 ExprIf.hpp:38
SharedPtr< Expr > condition
elseif条件表达式
定义 ExprIf.hpp:39
SharedPtr< Expr > block
elseif代码块
定义 ExprIf.hpp:40