1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 20:42:21 +02:00

Initializer expressions

This commit is contained in:
Brian Fiete 2020-06-18 06:12:14 -07:00
parent f6e31e4976
commit 229a5aa5c5
17 changed files with 305 additions and 18 deletions

View file

@ -354,6 +354,7 @@ class BfStrideOfExpression;
class BfDefaultExpression;
class BfUninitializedExpression;
class BfConditionalExpression;
class BfInitializerExpression;
class BfCollectionInitializerExpression;
class BfSizedArrayCreateExpression;
class BfEmptyStatement;
@ -435,6 +436,7 @@ public:
virtual void Visit(BfBaseExpression* baseExpr);
virtual void Visit(BfMixinExpression* thisExpr);
virtual void Visit(BfSizedArrayCreateExpression* createExpr);
virtual void Visit(BfInitializerExpression* collectionInitExpr);
virtual void Visit(BfCollectionInitializerExpression* collectionInitExpr);
virtual void Visit(BfTypeReference* typeRef);
virtual void Visit(BfNamedTypeReference* typeRef);
@ -2017,6 +2019,18 @@ public:
BfVariant mValue;
}; BF_AST_DECL(BfLiteralExpression, BfExpression);
class BfInitializerExpression : public BfExpression
{
public:
BF_AST_TYPE(BfInitializerExpression, BfExpression);
BfExpression* mTarget;
BfTokenNode* mOpenBrace;
BfSizedArray<BfExpression*> mValues;
BfSizedArray<BfTokenNode*> mCommas;
BfTokenNode* mCloseBrace;
}; BF_AST_DECL(BfInitializerExpression, BfExpression);
class BfCollectionInitializerExpression : public BfExpression
{
public:
@ -2606,7 +2620,7 @@ public:
BfTokenNode* mOpenToken;
BfTokenNode* mCloseToken;
BfSizedArray<BfExpression*> mArguments;
BfSizedArray<BfTokenNode*> mCommas;
BfSizedArray<BfTokenNode*> mCommas;
}; BF_AST_DECL(BfObjectCreateExpression, BfMethodBoundExpression);
class BfBoxExpression : public BfExpression