🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ExprVisitor.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24
25AST_NAMESPACE_BEGIN
26
27class Expr;
28class Symbol;
29class Variable;
30class ValNull;
31class ValBool;
32class ValInt;
33class ValDouble;
34class ValString;
35class ValQuantity;
36class ValRange;
37class OpAssign;
38class OpBin;
39class OpUnary;
40class Function;
41class Macro;
42class ExprBlock;
43class ExprCondition;
44class ExprIf;
45class ExprWhile;
46class ExprForRange;
47class ExprRange;
48class ExprVector;
49class ExprCatHorizontal;
50class ExprCatVertical;
51class ExprCall;
52class ExprMacroExpand;
53
54
55
59public:
60 virtual ~ExprVisitor() = default;
61 // virtual void visit(Expr& expr) = 0;
62 virtual void visit(Symbol& symbol) = 0;
63
64 virtual void visit(Variable& var) = 0;
65 virtual void visit(ValNull& val) = 0;
66 virtual void visit(ValInt& val) = 0;
67 virtual void visit(ValDouble& val) = 0;
68 virtual void visit(ValString& val) = 0;
69 virtual void visit(ValBool& val) = 0;
70 virtual void visit(ValQuantity& val) = 0;
71 virtual void visit(ValRange& val) = 0;
72
73 virtual void visit(OpAssign& op) = 0;
74 virtual void visit(OpBin& op) = 0;
75 virtual void visit(OpUnary& op) = 0;
76
77 virtual void visit(Function& func) = 0;
78 virtual void visit(Macro& macro) = 0;
79
80 virtual void visit(ExprBlock& block) = 0;
81 virtual void visit(ExprCondition& expr) = 0;
82 virtual void visit(ExprIf& expr) = 0;
83 virtual void visit(ExprWhile& expr) = 0;
84 virtual void visit(ExprForRange& expr) = 0;
85 virtual void visit(ExprRange& expr) = 0;
86 virtual void visit(ExprVector& expr) = 0;
87 virtual void visit(ExprCatHorizontal& expr) = 0;
88 virtual void visit(ExprCatVertical& expr) = 0;
89 virtual void visit(ExprCall& expr) = 0;
90 virtual void visit(ExprMacroExpand& expr) = 0;
91
92};
93
94AST_NAMESPACE_END
代码块表达式
定义 ExprBlock.hpp:32
函数调用表达式
定义 ExprCall.hpp:35
水平拼接表达式 (空格分隔),例如[a b c]、[1 2 3]
定义 ExprCatHorizontal.hpp:34
垂直拼接表达式 (换行或;分隔),例如[a; b; c]、[1; 2; 3]
定义 ExprCatVertical.hpp:34
条件表达式 (三元运算符 ? :)
定义 ExprCondition.hpp:33
for 循环表达式(范围风格)
定义 ExprLoop.hpp:81
if条件语句表达式
定义 ExprIf.hpp:35
宏展开表达式
定义 ExprMacroExpand.hpp:35
范围表达式
定义 ExprRange.hpp:36
向量表达式,逗号分隔,例如 [1, 2, 3]、[a, b, c]
定义 ExprVector.hpp:36
表达式访问器
定义 ExprVisitor.hpp:58
while 循环表达式
定义 ExprLoop.hpp:44
函数对象基类
定义 Function.hpp:36
宏对象基类
定义 Macro.hpp:36
赋值运算符表达式
定义 OpAssign.hpp:35
二元运算符表达式
定义 OpBin.hpp:34
一元运算符表达式
定义 OpUnary.hpp:34
符号表达式
定义 Symbol.hpp:34
布尔值
定义 ValBool.hpp:31
双精度浮点值
定义 ValDouble.hpp:31
整数值
定义 ValInt.hpp:31
空值
定义 ValNull.hpp:31
数量值
定义 ValQuantity.hpp:33
范围值
定义 ValRange.hpp:34
字符串值
定义 ValString.hpp:34
变量
定义 Variable.hpp:38