🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ExprLoop.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "Expr.hpp"
25#include "ExprBlock.hpp"
26#include "AstUtil/SharedPtr.hpp"
27
28AST_NAMESPACE_BEGIN
29
32class ExprLoop: public Expr
33{
34public:
35 using Expr::Expr;
36 ~ExprLoop() override = default;
37};
38
39
43class ExprWhile: public ExprLoop
44{
45public:
46 AST_EXPR(ExprWhile)
47
48
49 ExprWhile();
50
54 ExprWhile(Expr* condition, Expr* body);
55
56 ~ExprWhile() override = default;
57
60 Value* eval() const override;
61
63 errc_t setValue(Value* val) override;
64
68 std::string getExpression(Object* context=nullptr) const override;
69
70protected:
73};
74
75
76
81{
82public:
83 AST_EXPR(ExprForRange)
84
85
87
92 ExprForRange(Expr* variable, Expr* range, Expr* body);
93
94 ~ExprForRange() override = default;
95
98 Value* eval() const override;
99
101 errc_t setValue(Value* val) override;
102
106 std::string getExpression(Object* context=nullptr) const override;
107
108protected:
112};
113
114
115AST_NAMESPACE_END
for 循环表达式(范围风格)
定义 ExprLoop.hpp:81
SharedPtr< Expr > variable_
循环变量
定义 ExprLoop.hpp:109
SharedPtr< Expr > range_
范围表达式
定义 ExprLoop.hpp:110
SharedPtr< Expr > body_
循环体
定义 ExprLoop.hpp:111
循环表达式基类
定义 ExprLoop.hpp:33
while 循环表达式
定义 ExprLoop.hpp:44
SharedPtr< Expr > condition_
循环条件表达式
定义 ExprLoop.hpp:71
SharedPtr< Expr > body_
循环体
定义 ExprLoop.hpp:72
表达式基类
定义 Expr.hpp:39
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81
共享指针
定义 SharedPtr.hpp:33
值对象基类
定义 Value.hpp:36