Files
Fig-TreeWalker/src/Ast/Expressions/ContainerInitExprs.hpp
PuqiAR f056b0ffbe [Feat] 增加容器 List, Map, 以及对应Hash
[Impl] Addressable/Unaddressable Error现在内部存储FString而非View
2025-12-25 17:10:12 +08:00

65 lines
1.3 KiB
C++

// Container Data Types --- Tuple/List/Map...
#pragma once
#include <Ast/astBase.hpp>
#include <map>
namespace Fig::Ast
{
class ListExprAst final : public ExpressionAst
{
public:
std::vector<Expression> val;
ListExprAst()
{
type = AstType::ListExpr;
}
ListExprAst(std::vector<Expression> _val) :
val(std::move(_val))
{
type = AstType::ListExpr;
}
};
using ListExpr = std::shared_ptr<ListExprAst>;
class TupleExprAst final : public ExpressionAst
{
public:
std::vector<Expression> val;
TupleExprAst()
{
type = AstType::TupleExpr;
}
TupleExprAst(std::vector<Expression> _val) :
val(std::move(_val))
{
type = AstType::TupleExpr;
}
};
using TupleExpr = std::shared_ptr<TupleExprAst>;
class MapExprAst final : public ExpressionAst
{
public:
std::map<Expression, Expression> val;
MapExprAst()
{
type = AstType::MapExpr;
}
MapExprAst(std::map<Expression, Expression> _val) :
val(std::move(_val))
{
type = AstType::MapExpr;
}
};
using MapExpr = std::shared_ptr<MapExprAst>;
}; // namespace Fig::Ast