🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ExprMacroExpand.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "Expr.hpp"
25#include "AstUtil/SharedPtr.hpp"
26#include <vector>
27
28AST_NAMESPACE_BEGIN
29
30class Macro;
31
34class ExprMacroExpand: public Expr
35{
36public:
37 AST_EXPR(ExprMacroExpand)
38
39 ExprMacroExpand() = default;
40 ~ExprMacroExpand() = default;
41
45 ExprMacroExpand(Expr* macro, const std::vector<SharedPtr<Expr>>& args)
46 : macro_(macro), args_(args)
47 {}
48
49
52 Value* eval() const override;
53
57 std::string getExpression(Object* context=nullptr) const override;
58
61 Expr* getMacro() { return macro_; }
62 const Expr* getMacro() const { return macro_; }
63
66 const std::vector<SharedPtr<Expr>>& getArgs() const { return args_; }
67
68private:
69 SharedPtr<Expr> macro_;
70 std::vector<SharedPtr<Expr>> args_;
71};
72
73
74AST_NAMESPACE_END
宏展开表达式
定义 ExprMacroExpand.hpp:35
Expr * getMacro()
获取被展开的宏对象
定义 ExprMacroExpand.hpp:61
const std::vector< SharedPtr< Expr > > & getArgs() const
获取宏展开参数列表
定义 ExprMacroExpand.hpp:66
ExprMacroExpand(Expr *macro, const std::vector< SharedPtr< Expr > > &args)
构造函数
定义 ExprMacroExpand.hpp:45
表达式基类
定义 Expr.hpp:39
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81
共享指针
定义 SharedPtr.hpp:33
值对象基类
定义 Value.hpp:36