1 //===-- ResourceVisitor.h ---------------------------------------*- C++-*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===---------------------------------------------------------------------===// 8 // 9 // This defines a base class visiting resource script resources. 10 // 11 //===---------------------------------------------------------------------===// 12 13 #ifndef LLVM_TOOLS_LLVMRC_RESOURCEVISITOR_H 14 #define LLVM_TOOLS_LLVMRC_RESOURCEVISITOR_H 15 16 #include "llvm/Support/Error.h" 17 18 namespace llvm { 19 namespace rc { 20 21 class RCResource; 22 23 class CaptionStmt; 24 class ClassStmt; 25 class CharacteristicsStmt; 26 class ExStyleStmt; 27 class FontStmt; 28 class LanguageResource; 29 class StyleStmt; 30 class VersionStmt; 31 32 class Visitor { 33 public: 34 virtual Error visitNullResource(const RCResource *) = 0; 35 virtual Error visitAcceleratorsResource(const RCResource *) = 0; 36 virtual Error visitBitmapResource(const RCResource *) = 0; 37 virtual Error visitCursorResource(const RCResource *) = 0; 38 virtual Error visitDialogResource(const RCResource *) = 0; 39 virtual Error visitHTMLResource(const RCResource *) = 0; 40 virtual Error visitIconResource(const RCResource *) = 0; 41 virtual Error visitMenuResource(const RCResource *) = 0; 42 virtual Error visitStringTableResource(const RCResource *) = 0; 43 virtual Error visitUserDefinedResource(const RCResource *) = 0; 44 virtual Error visitVersionInfoResource(const RCResource *) = 0; 45 46 virtual Error visitCaptionStmt(const CaptionStmt *) = 0; 47 virtual Error visitClassStmt(const ClassStmt *) = 0; 48 virtual Error visitCharacteristicsStmt(const CharacteristicsStmt *) = 0; 49 virtual Error visitExStyleStmt(const ExStyleStmt *) = 0; 50 virtual Error visitFontStmt(const FontStmt *) = 0; 51 virtual Error visitLanguageStmt(const LanguageResource *) = 0; 52 virtual Error visitStyleStmt(const StyleStmt *) = 0; 53 virtual Error visitVersionStmt(const VersionStmt *) = 0; 54 ~Visitor()55 virtual ~Visitor() {} 56 }; 57 58 } // namespace rc 59 } // namespace llvm 60 61 #endif 62