BfDeferEvalChecker.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include "BeefySysLib/Common.h"
  3. #include "BfAst.h"
  4. NS_BF_BEGIN
  5. class BfDeferEvalChecker : public BfStructuralVisitor
  6. {
  7. public:
  8. BfAstNode* mRootNode;
  9. bool mNeedsDeferEval;
  10. bool mDeferDelegateBind;
  11. bool mDeferLiterals;
  12. bool mDeferStrings;
  13. public:
  14. BfDeferEvalChecker();
  15. void Check(BfAstNode* node);
  16. virtual void Visit(BfAstNode* node) override;
  17. virtual void Visit(BfAttributedExpression* attributedExpr) override;
  18. virtual void Visit(BfInitializerExpression* collectionInitExpr) override;
  19. virtual void Visit(BfLiteralExpression* literalExpr) override;
  20. virtual void Visit(BfCastExpression* castExpr) override;
  21. virtual void Visit(BfParenthesizedExpression* parenExpr) override;
  22. virtual void Visit(BfTupleExpression* tupleExpr) override;
  23. virtual void Visit(BfMemberReferenceExpression* memberRefExpr) override;
  24. virtual void Visit(BfInvocationExpression* invocationExpr) override;
  25. virtual void Visit(BfLambdaBindExpression* lambdaBindExpr) override;
  26. virtual void Visit(BfDelegateBindExpression* delegateBindExpr) override;
  27. virtual void Visit(BfConditionalExpression* condExpr) override;
  28. virtual void Visit(BfUnaryOperatorExpression* unaryOpExpr) override;
  29. virtual void Visit(BfObjectCreateExpression* objCreateExpr) override;
  30. virtual void Visit(BfBinaryOperatorExpression* binOpExpr) override;
  31. virtual void Visit(BfDefaultExpression* defaultExpr) override;
  32. virtual void Visit(BfVariableDeclaration* varDecl) override;
  33. };
  34. NS_BF_END