xref: /openbsd-src/gnu/llvm/llvm/tools/llvm-rc/ResourceVisitor.h (revision 09467b48e8bc8b4905716062da846024139afbf2)
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