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