1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-07-04 15:26:00 +02:00

Improved circular mixin check, isconst(expr), [ConstSkip]

This commit is contained in:
Brian Fiete 2022-05-30 11:40:49 -07:00
parent cab9b3d9c7
commit 75333a0928
19 changed files with 241 additions and 60 deletions

View file

@ -158,6 +158,7 @@ enum BfToken : uint8
BfToken_Interface,
BfToken_Internal,
BfToken_Is,
BfToken_IsConst,
BfToken_Let,
BfToken_Mixin,
BfToken_Mut,
@ -380,6 +381,7 @@ class BfSizeOfExpression;
class BfAlignOfExpression;
class BfOffsetOfExpression;
class BfStrideOfExpression;
class BfIsConstExpression;
class BfDefaultExpression;
class BfUninitializedExpression;
class BfConditionalExpression;
@ -504,6 +506,7 @@ public:
virtual void Visit(BfAlignOfExpression* alignOfExpr);
virtual void Visit(BfStrideOfExpression* strideOfExpr);
virtual void Visit(BfOffsetOfExpression* offsetOfExpr);
virtual void Visit(BfIsConstExpression* isConstExpr);
virtual void Visit(BfDefaultExpression* defaultExpr);
virtual void Visit(BfUninitializedExpression* uninitializedExpr);
virtual void Visit(BfCheckTypeExpression* checkTypeExpr);
@ -2688,9 +2691,10 @@ public:
class BfStrideOfExpression : public BfTypeAttrExpression
{
public:
BF_AST_TYPE(BfStrideOfExpression, BfTypeAttrExpression);
BF_AST_TYPE(BfStrideOfExpression, BfTypeAttrExpression);
}; BF_AST_DECL(BfStrideOfExpression, BfTypeAttrExpression);
class BfOffsetOfExpression : public BfTypeAttrExpression
{
public:
@ -2700,6 +2704,17 @@ public:
BfIdentifierNode* mMemberName;
}; BF_AST_DECL(BfOffsetOfExpression, BfTypeAttrExpression);
class BfIsConstExpression : public BfExpression
{
public:
BF_AST_TYPE(BfIsConstExpression, BfTypeAttrExpression);
BfTokenNode* mIsConstToken;
BfTokenNode* mOpenParen;
BfExpression* mExpression;
BfTokenNode* mCloseParen;
}; BF_AST_DECL(BfIsConstExpression, BfTypeAttrExpression);
class BfDefaultExpression : public BfExpression
{
public: