🛰️航天仿真算法库 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
28
AST_NAMESPACE_BEGIN
29
32
class
ExprLoop
:
public
Expr
33
{
34
public
:
35
using
Expr::Expr;
36
~ExprLoop
()
override
=
default
;
37
};
38
39
43
class
ExprWhile
:
public
ExprLoop
44
{
45
public
:
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
70
protected
:
71
SharedPtr<Expr>
condition_
;
72
SharedPtr<Expr>
body_
;
73
};
74
75
76
80
class
ExprForRange
:
public
ExprLoop
81
{
82
public
:
83
AST_EXPR(
ExprForRange
)
84
85
86
ExprForRange
();
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
108
protected
:
109
SharedPtr<Expr>
variable_
;
110
SharedPtr<Expr>
range_
;
111
SharedPtr<Expr>
body_
;
112
};
113
114
115
AST_NAMESPACE_END
ExprBlock.hpp
~
Expr.hpp
~
ast::ExprForRange
for 循环表达式(范围风格)
定义
ExprLoop.hpp:81
ast::ExprForRange::variable_
SharedPtr< Expr > variable_
循环变量
定义
ExprLoop.hpp:109
ast::ExprForRange::range_
SharedPtr< Expr > range_
范围表达式
定义
ExprLoop.hpp:110
ast::ExprForRange::body_
SharedPtr< Expr > body_
循环体
定义
ExprLoop.hpp:111
ast::ExprLoop
循环表达式基类
定义
ExprLoop.hpp:33
ast::ExprWhile
while 循环表达式
定义
ExprLoop.hpp:44
ast::ExprWhile::condition_
SharedPtr< Expr > condition_
循环条件表达式
定义
ExprLoop.hpp:71
ast::ExprWhile::body_
SharedPtr< Expr > body_
循环体
定义
ExprLoop.hpp:72
ast::Expr
表达式基类
定义
Expr.hpp:39
ast::Object
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义
Object.hpp:81
ast::SharedPtr
共享指针
定义
SharedPtr.hpp:33
ast::Value
值对象基类
定义
Value.hpp:36
src
AstScript
Expression
ExprLoop.hpp
制作者
1.12.0