BfElementVisitor.h 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. #pragma once
  2. #include "BfAst.h"
  3. NS_BF_BEGIN
  4. class BfElementVisitor : public BfStructuralVisitor
  5. {
  6. public:
  7. BfElementVisitor();
  8. virtual void Visit(BfAstNode* bfAstNode) {}
  9. virtual void Visit(BfErrorNode* bfErrorNode);
  10. virtual void Visit(BfScopeNode* scopeNode);
  11. virtual void Visit(BfNewNode* newNode);
  12. virtual void Visit(BfLabeledBlock* labeledBlock);
  13. virtual void Visit(BfExpression* expr);
  14. virtual void Visit(BfExpressionStatement* exprStmt);
  15. virtual void Visit(BfNamedExpression* namedExpr);
  16. virtual void Visit(BfAttributedExpression* attribExpr);
  17. virtual void Visit(BfStatement* stmt);
  18. virtual void Visit(BfAttributedStatement* attribStmt);
  19. virtual void Visit(BfLabelableStatement* labelableStmt);
  20. virtual void Visit(BfTypedValueExpression* typedValueExpr);
  21. virtual void Visit(BfCommentNode* commentNode);
  22. virtual void Visit(BfPreprocesorIgnoredSectionNode* preprocesorIgnoredSection);
  23. virtual void Visit(BfPreprocessorNode* preprocessorNode);
  24. virtual void Visit(BfPreprocessorDefinedExpression* definedExpr);
  25. virtual void Visit(BfAttributeDirective* attributeDirective);
  26. virtual void Visit(BfGenericParamsDeclaration* genericParams);
  27. virtual void Visit(BfGenericOperatorConstraint* genericConstraints);
  28. virtual void Visit(BfGenericConstraintsDeclaration* genericConstraints);
  29. virtual void Visit(BfGenericArgumentsNode* genericArgumentsNode);
  30. virtual void Visit(BfCtorExplicitNode* genericArgumentsNode);
  31. virtual void Visit(BfEmptyStatement* emptyStmt);
  32. virtual void Visit(BfTokenNode* tokenNode);
  33. virtual void Visit(BfTokenPairNode* tokenPairNode);
  34. virtual void Visit(BfUsingSpecifierNode* usingSpecifier);
  35. virtual void Visit(BfLiteralExpression* literalExpr);
  36. virtual void Visit(BfStringInterpolationExpression* stringInterpolationExpression);
  37. virtual void Visit(BfIdentifierNode* identifierNode);
  38. virtual void Visit(BfAttributedIdentifierNode* attrIdentifierNode);
  39. virtual void Visit(BfQualifiedNameNode* nameNode);
  40. virtual void Visit(BfThisExpression* thisExpr);
  41. virtual void Visit(BfBaseExpression* baseExpr);
  42. virtual void Visit(BfMixinExpression* thisExpr);
  43. virtual void Visit(BfSizedArrayCreateExpression* createExpr);
  44. virtual void Visit(BfInitializerExpression* initExpr);
  45. virtual void Visit(BfCollectionInitializerExpression* collectionInitExpr);
  46. virtual void Visit(BfTypeReference* typeRef);
  47. virtual void Visit(BfInlineTypeReference* typeRef);
  48. virtual void Visit(BfNamedTypeReference* typeRef);
  49. virtual void Visit(BfQualifiedTypeReference* qualifiedType);
  50. virtual void Visit(BfDotTypeReference* typeRef);
  51. virtual void Visit(BfVarTypeReference* typeRef);
  52. virtual void Visit(BfVarRefTypeReference* typeRef);
  53. virtual void Visit(BfLetTypeReference* typeRef);
  54. virtual void Visit(BfConstTypeRef* typeRef);
  55. virtual void Visit(BfConstExprTypeRef* typeRef);
  56. virtual void Visit(BfRefTypeRef* typeRef);
  57. virtual void Visit(BfModifiedTypeRef* typeRef);
  58. virtual void Visit(BfArrayTypeRef* typeRef);
  59. virtual void Visit(BfGenericInstanceTypeRef* typeRef);
  60. virtual void Visit(BfTupleTypeRef* typeRef);
  61. virtual void Visit(BfTagTypeRef* typeRef);
  62. virtual void Visit(BfExprModTypeRef* typeRef);
  63. virtual void Visit(BfDelegateTypeRef* typeRef);
  64. virtual void Visit(BfPointerTypeRef* typeRef);
  65. virtual void Visit(BfNullableTypeRef* typeRef);
  66. virtual void Visit(BfVariableDeclaration* varDecl);
  67. virtual void Visit(BfLocalMethodDeclaration* methodDecl);
  68. virtual void Visit(BfParameterDeclaration* paramDecl);
  69. virtual void Visit(BfTypeAttrExpression* typeAttrExpr);
  70. virtual void Visit(BfOffsetOfExpression* offsetOfExpr);
  71. virtual void Visit(BfNameOfExpression* nameOfExpr);
  72. virtual void Visit(BfDefaultExpression* defaultExpr);
  73. virtual void Visit(BfIsConstExpression* isConstExpr);
  74. virtual void Visit(BfUninitializedExpression* uninitializedExpr);
  75. virtual void Visit(BfCheckTypeExpression* checkTypeExpr);
  76. virtual void Visit(BfDynamicCastExpression* dynCastExpr);
  77. virtual void Visit(BfCastExpression* castExpr);
  78. virtual void Visit(BfDelegateBindExpression* delegateBindExpr);
  79. virtual void Visit(BfLambdaBindExpression* lambdaBindExpr);
  80. virtual void Visit(BfObjectCreateExpression* objCreateExpr);
  81. virtual void Visit(BfBoxExpression* boxExpr);
  82. virtual void Visit(BfScopedInvocationTarget* scopedTarget);
  83. virtual void Visit(BfInvocationExpression* invocationExpr);
  84. virtual void Visit(BfDeferStatement* deferStmt);
  85. virtual void Visit(BfEnumCaseBindExpression* caseBindExpr);
  86. virtual void Visit(BfCaseExpression* caseExpr);
  87. virtual void Visit(BfSwitchCase* switchCase);
  88. virtual void Visit(BfWhenExpression* whenExpr);
  89. virtual void Visit(BfSwitchStatement* switchStmt);
  90. virtual void Visit(BfTryStatement* tryStmt);
  91. virtual void Visit(BfCatchStatement* catchStmt);
  92. virtual void Visit(BfFinallyStatement* finallyStmt);
  93. virtual void Visit(BfCheckedStatement* checkedStmt);
  94. virtual void Visit(BfUncheckedStatement* uncheckedStmt);
  95. virtual void Visit(BfIfStatement* ifStmt);
  96. virtual void Visit(BfThrowStatement* throwStmt);
  97. virtual void Visit(BfDeleteStatement* deleteStmt);
  98. virtual void Visit(BfReturnStatement* returnStmt);
  99. virtual void Visit(BfYieldStatement* returnStmt);
  100. virtual void Visit(BfBreakStatement* breakStmt);
  101. virtual void Visit(BfContinueStatement* continueStmt);
  102. virtual void Visit(BfFallthroughStatement* fallthroughStmt);
  103. virtual void Visit(BfUsingStatement* whileStmt);
  104. virtual void Visit(BfDoStatement* whileStmt);
  105. virtual void Visit(BfRepeatStatement* repeatStmt);
  106. virtual void Visit(BfWhileStatement* whileStmt);
  107. virtual void Visit(BfForStatement* forStmt);
  108. virtual void Visit(BfForEachStatement* forEachStmt);
  109. virtual void Visit(BfConditionalExpression* condExpr);
  110. virtual void Visit(BfAssignmentExpression* assignExpr);
  111. virtual void Visit(BfParenthesizedExpression* parenExpr);
  112. virtual void Visit(BfTupleExpression* parenExpr);
  113. virtual void Visit(BfMemberReferenceExpression* memberRefExpr);
  114. virtual void Visit(BfIndexerExpression* indexerExpr);
  115. virtual void Visit(BfUnaryOperatorExpression* binOpExpr);
  116. virtual void Visit(BfBinaryOperatorExpression* binOpExpr);
  117. virtual void Visit(BfConstructorDeclaration* ctorDeclaration);
  118. virtual void Visit(BfAutoConstructorDeclaration* ctorDeclaration);
  119. virtual void Visit(BfDestructorDeclaration* dtorDeclaration);
  120. virtual void Visit(BfMethodDeclaration* methodDeclaration);
  121. virtual void Visit(BfOperatorDeclaration* operatorDeclaration);
  122. virtual void Visit(BfPropertyMethodDeclaration* propertyDeclaration);
  123. virtual void Visit(BfPropertyBodyExpression* propertyBodyExpression);
  124. virtual void Visit(BfPropertyDeclaration* propertyDeclaration);
  125. virtual void Visit(BfIndexerDeclaration* indexerDeclaration);
  126. virtual void Visit(BfFieldDeclaration* fieldDeclaration);
  127. virtual void Visit(BfEnumCaseDeclaration* enumCaseDeclaration);
  128. virtual void Visit(BfFieldDtorDeclaration* fieldDtorDeclaration);
  129. virtual void Visit(BfTypeDeclaration* typeDeclaration);
  130. virtual void Visit(BfTypeAliasDeclaration* typeDeclaration);
  131. virtual void Visit(BfUsingDirective* usingDirective);
  132. virtual void Visit(BfUsingModDirective* usingDirective);
  133. virtual void Visit(BfNamespaceDeclaration* namespaceDeclaration);
  134. virtual void Visit(BfBlock* block);
  135. virtual void Visit(BfRootNode* rootNode);
  136. virtual void Visit(BfInlineAsmStatement* asmStmt);
  137. virtual void Visit(BfInlineAsmInstruction* asmInst);
  138. };
  139. NS_BF_END