[Impl] 重构evaluator.cpp + hpp 全部 [Feat] 增加对于IndexExpr的解析 [Fix][Impl] 现在点运算符不由BinaryExpr负责,增加MemberExpr,单独实现解析 [Impl] 项目目录全部翻修, src/目录下单独文件夹放置每一个模块
29 lines
705 B
C++
29 lines
705 B
C++
#pragma once
|
|
|
|
#include <Ast/astBase.hpp>
|
|
|
|
namespace Fig::Ast
|
|
{
|
|
// condition ? val_true : val_false
|
|
class TernaryExprAst final : public ExpressionAst
|
|
{
|
|
public:
|
|
Expression condition;
|
|
Expression valueT;
|
|
Expression valueF;
|
|
|
|
TernaryExprAst()
|
|
{
|
|
type = AstType::TernaryExpr;
|
|
}
|
|
TernaryExprAst(Expression _condition, Expression _valueT, Expression _valueF)
|
|
{
|
|
type = AstType::TernaryExpr;
|
|
|
|
condition = std::move(_condition);
|
|
valueT = std::move(_valueT);
|
|
valueF = std::move(_valueF);
|
|
}
|
|
};
|
|
using TernaryExpr = std::shared_ptr<TernaryExprAst>;
|
|
} // namespace Fig
|