1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00
Beef/IDEHelper/Compiler/BfDeferEvalChecker.h

42 lines
1.4 KiB
C
Raw Normal View History

2019-08-23 11:56:54 -07:00
#pragma once
#include "BeefySysLib/Common.h"
#include "BfAst.h"
NS_BF_BEGIN
class BfDeferEvalChecker : public BfStructuralVisitor
{
public:
BfAstNode* mRootNode;
2019-08-23 11:56:54 -07:00
bool mNeedsDeferEval;
bool mDeferDelegateBind;
2022-07-26 13:27:03 -04:00
bool mDeferLiterals;
bool mDeferStrings;
2019-08-23 11:56:54 -07:00
public:
BfDeferEvalChecker();
void Check(BfAstNode* node);
2019-08-23 11:56:54 -07:00
virtual void Visit(BfAstNode* node) override;
2022-07-26 13:27:03 -04:00
2022-06-24 18:41:54 -07:00
virtual void Visit(BfAttributedExpression* attributedExpr) override;
virtual void Visit(BfInitializerExpression* collectionInitExpr) override;
2019-08-23 11:56:54 -07:00
virtual void Visit(BfLiteralExpression* literalExpr) override;
virtual void Visit(BfCastExpression* castExpr) override;
virtual void Visit(BfParenthesizedExpression* parenExpr) override;
virtual void Visit(BfTupleExpression* tupleExpr) override;
virtual void Visit(BfMemberReferenceExpression* memberRefExpr) override;
virtual void Visit(BfInvocationExpression* invocationExpr) override;
virtual void Visit(BfLambdaBindExpression* lambdaBindExpr) override;
virtual void Visit(BfDelegateBindExpression* delegateBindExpr) override;
2019-08-23 11:56:54 -07:00
virtual void Visit(BfConditionalExpression* condExpr) override;
virtual void Visit(BfUnaryOperatorExpression* unaryOpExpr) override;
virtual void Visit(BfObjectCreateExpression* objCreateExpr) override;
virtual void Visit(BfBinaryOperatorExpression* binOpExpr) override;
2019-08-23 11:56:54 -07:00
virtual void Visit(BfDefaultExpression* defaultExpr) override;
virtual void Visit(BfVariableDeclaration* varDecl) override;
2019-08-23 11:56:54 -07:00
};
NS_BF_END