🛰️航天仿真算法库 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 ExprIf: public Expr
35{
36public:
37 AST_EXPR(ExprIf)
38
39
40 ExprIf();
41
42
43 ExprIf(Expr* condition, Expr* block);
44
45
47 ~ExprIf() override = default;
48
51 Value* eval() const override;
52
54 errc_t setValue(Value* val) override;
55
59 std::string getExpression(Object* context=nullptr) const override;
60
64 void addElseif(Expr* condition, Expr* block);
65
68 void setElse(Expr* block);
69
70private:
71 struct ConditionBranch {
72 SharedPtr<Expr> condition;
73 SharedPtr<Expr> block;
74 };
75 std::vector<ConditionBranch> conditionBranches_;
76 SharedPtr<Expr> elseBlock_;
77};
78
79
80
81AST_NAMESPACE_END
if条件语句表达式
定义 ExprIf.hpp:35
~ExprIf() override=default
析构函数
表达式基类
定义 Expr.hpp:39
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81
共享指针
定义 SharedPtr.hpp:33
值对象基类
定义 Value.hpp:36