|
🛰️航天仿真算法库 SpaceAST 0.0.1
|
#include <Expr.hpp>
类 ast::Expr 继承关系图:Public 成员函数 | |
| virtual void | accept (ExprVisitor &visitor)=0 |
| virtual Value * | eval () const =0 |
| virtual Expr * | exec () const |
| virtual errc_t | setValue (Value *val) |
| virtual std::string | getExpression (Object *context=nullptr) const =0 |
| Object () | |
| Object (Object *parentScope) | |
| Object (std::nullptr_t) | |
| Object (const Object &obj) | |
Public 成员函数 继承自 ast::Object | |
| Object (Object *parentScope) | |
| Object (std::nullptr_t) | |
| virtual Class * | getType () const |
| virtual const std::string & | getName () const |
| errc_t | openEditDialog () |
| Attribute | attr (StringView path) |
| errc_t | getAttrBool (StringView path, bool &value) const |
| errc_t | getAttrInt (StringView path, int &value) const |
| errc_t | getAttrDouble (StringView path, double &value) const |
| errc_t | getAttrString (StringView path, std::string &value) const |
| double | getAttrDouble (StringView path) const |
| int | getAttrInt (StringView path) const |
| bool | getAttrBool (StringView path) const |
| std::string | getAttrString (StringView path) const |
| errc_t | setAttrBool (StringView path, bool value) |
| errc_t | setAttrInt (StringView path, int value) |
| errc_t | setAttrDouble (StringView path, double value) |
| errc_t | setAttrString (StringView path, StringView value) |
| Class * | type () const |
| Property * | getProperty (StringView fieldName) const |
| uint32_t | getID () const |
| errc_t | setParentScope (Object *parentScope) |
| Object * | getParentScope () const |
| uint32_t | refCount () const |
| uint32_t | weakRefCount () const |
| bool | isDestructed () const |
| void | destruct () |
| uint32_t | incWeakRef () |
| uint32_t | decWeakRef () |
| uint32_t | incRef () |
| uint32_t | decRef () |
| uint32_t | decRefNoDelete () |
额外继承的成员函数 | |
静态 Public 成员函数 继承自 ast::Object | |
| static Class * | getStaticType () |
静态 Public 属性 继承自 ast::Object | |
| static Class | staticType |
Protected 成员函数 继承自 ast::Object | |
| Object (const Object &obj) | |
| Object & | operator= (const Object &obj) |
表达式基类
表达式是脚本语言中的基本构造单元,可以是常量、变量、运算符表达式、函数调用等 不同类型的表达式通过继承自Expr类来实现多态行为 表达式可以嵌套组合,形成复杂的计算逻辑 表达式的特点是“可以求值”,即每个表达式在求值后都会产生一个结果值
|
pure virtual |
接受表达式访问者
| visitor | 表达式访问者对象 |
|
pure virtual |
求值
在 ast::ExprBlock, ast::ExprCall, ast::ExprCatHorizontal, ast::ExprCatVertical, ast::ExprCondition, ast::ExprForRange, ast::ExprIf, ast::ExprMacroExpand, ast::ExprRange, ast::ExprVector, ast::ExprWhile, ast::OpAssign, ast::OpBin, ast::OpUnary, ast::Symbol, ast::Value , 以及 ast::Variable 内被实现.
|
inlinevirtual |
|
pure virtual |
获取表达式的字符串表示
| context | 可选的上下文对象,用于解析变量等 |
在 ast::ExprBlock, ast::ExprCall, ast::ExprCatHorizontal, ast::ExprCatVertical, ast::ExprCondition, ast::ExprForRange, ast::ExprIf, ast::ExprMacroExpand, ast::ExprRange, ast::ExprVector, ast::ExprWhile, ast::OpAssign, ast::OpBin, ast::OpUnary, ast::Symbol, ast::ValNull, ast::ValQuantity, ast::ValRange, ast::ValScalar< Scalar >, ast::ValScalar< bool >, ast::ValScalar< double >, ast::ValScalar< int >, ast::ValString , 以及 ast::Variable 内被实现.
|
inlinevirtual |
设置表达式的值
被 ast::ExprBlock, ast::ExprCondition, ast::ExprForRange, ast::ExprIf, ast::ExprWhile, ast::Op, ast::Symbol, ast::Value , 以及 ast::Variable 重载.