Mercurial > hg > CbC > CbC_llvm
annotate tools/llvm-rc/ResourceFileWriter.h @ 171:66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 11:07:02 +0900 |
parents | |
children |
rev | line source |
---|---|
171
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 //===-- ResourceSerializator.h ----------------------------------*- C++-*-===// |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 // |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 // See https://llvm.org/LICENSE.txt for license information. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 // |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 //===---------------------------------------------------------------------===// |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 // |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 // This defines a visitor serializing resources to a .res stream. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 // |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 //===---------------------------------------------------------------------===// |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 #ifndef LLVM_TOOLS_LLVMRC_RESOURCESERIALIZATOR_H |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 #define LLVM_TOOLS_LLVMRC_RESOURCESERIALIZATOR_H |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 #include "ResourceScriptStmt.h" |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 #include "ResourceVisitor.h" |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 #include "llvm/Support/Endian.h" |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 namespace llvm { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 class MemoryBuffer; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 namespace rc { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 enum CodePage { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 CpAcp = 0, // The current used codepage. Since there's no such |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 // notion in LLVM what codepage it actually means, |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 // this only allows ASCII. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 CpWin1252 = 1252, // A codepage where most 8 bit values correspond to |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 // unicode code points with the same value. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 CpUtf8 = 65001, // UTF-8. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 }; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 struct WriterParams { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 std::vector<std::string> Include; // Additional folders to search for files. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 std::vector<std::string> NoInclude; // Folders to exclude from file search. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 StringRef InputFilePath; // The full path of the input file. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 int CodePage = CpAcp; // The codepage for interpreting characters. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 }; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 class ResourceFileWriter : public Visitor { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 public: |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 ResourceFileWriter(const WriterParams &Params, |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 std::unique_ptr<raw_fd_ostream> Stream) |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 : Params(Params), FS(std::move(Stream)), IconCursorID(1) { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 assert(FS && "Output stream needs to be provided to the serializator"); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 } |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 Error visitNullResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 Error visitAcceleratorsResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 Error visitCursorResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 Error visitDialogResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 Error visitHTMLResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 Error visitIconResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 Error visitMenuResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 Error visitVersionInfoResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 Error visitStringTableResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 Error visitUserDefinedResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 Error visitCaptionStmt(const CaptionStmt *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 Error visitCharacteristicsStmt(const CharacteristicsStmt *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 Error visitClassStmt(const ClassStmt *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 Error visitExStyleStmt(const ExStyleStmt *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 Error visitFontStmt(const FontStmt *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 Error visitLanguageStmt(const LanguageResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 Error visitStyleStmt(const StyleStmt *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 Error visitVersionStmt(const VersionStmt *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 // Stringtables are output at the end of .res file. We need a separate |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 // function to do it. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 Error dumpAllStringTables(); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 bool AppendNull; // Append '\0' to each existing STRINGTABLE element? |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 struct ObjectInfo { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 uint16_t LanguageInfo; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 uint32_t Characteristics; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 uint32_t VersionInfo; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 Optional<uint32_t> Style; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 Optional<uint32_t> ExStyle; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 StringRef Caption; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 struct FontInfo { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 uint32_t Size; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 StringRef Typeface; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88 uint32_t Weight; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89 bool IsItalic; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 uint32_t Charset; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91 }; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92 Optional<FontInfo> Font; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 IntOrString Class; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 ObjectInfo() |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 : LanguageInfo(0), Characteristics(0), VersionInfo(0), |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
97 Class(StringRef()) {} |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
98 } ObjectData; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
99 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 struct StringTableInfo { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
101 // Each STRINGTABLE bundle depends on ID of the bundle and language |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 // description. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
103 using BundleKey = std::pair<uint16_t, uint16_t>; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 // Each bundle is in fact an array of 16 strings. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105 struct Bundle { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
106 std::array<Optional<StringRef>, 16> Data; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 ObjectInfo DeclTimeInfo; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108 uint16_t MemoryFlags; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 Bundle(const ObjectInfo &Info, uint16_t Flags) |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110 : DeclTimeInfo(Info), MemoryFlags(Flags) {} |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 }; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112 std::map<BundleKey, Bundle> BundleData; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113 // Bundles are listed in the order of their first occurrence. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 std::vector<BundleKey> BundleList; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
115 } StringTableData; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117 private: |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 Error handleError(Error Err, const RCResource *Res); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
119 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 Error |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
121 writeResource(const RCResource *Res, |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
122 Error (ResourceFileWriter::*BodyWriter)(const RCResource *)); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124 // NullResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
125 Error writeNullBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
126 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
127 // AcceleratorsResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
128 Error writeSingleAccelerator(const AcceleratorsResource::Accelerator &, |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
129 bool IsLastItem); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
130 Error writeAcceleratorsBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
131 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132 // BitmapResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133 Error visitBitmapResource(const RCResource *) override; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
134 Error writeBitmapBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
135 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
136 // CursorResource and IconResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
137 Error visitIconOrCursorResource(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
138 Error visitIconOrCursorGroup(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
139 Error visitSingleIconOrCursor(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
140 Error writeSingleIconOrCursorBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
141 Error writeIconOrCursorGroupBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
142 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
143 // DialogResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
144 Error writeSingleDialogControl(const Control &, bool IsExtended); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
145 Error writeDialogBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
146 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
147 // HTMLResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
148 Error writeHTMLBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
149 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
150 // MenuResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
151 Error writeMenuDefinition(const std::unique_ptr<MenuDefinition> &, |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
152 uint16_t Flags); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
153 Error writeMenuDefinitionList(const MenuDefinitionList &List); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
154 Error writeMenuBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
155 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
156 // StringTableResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
157 Error visitStringTableBundle(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
158 Error writeStringTableBundleBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
159 Error insertStringIntoBundle(StringTableInfo::Bundle &Bundle, |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
160 uint16_t StringID, StringRef String); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
161 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
162 // User defined resource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
163 Error writeUserDefinedBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
164 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
165 // VersionInfoResource |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
166 Error writeVersionInfoBody(const RCResource *); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
167 Error writeVersionInfoBlock(const VersionInfoBlock &); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
168 Error writeVersionInfoValue(const VersionInfoValue &); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
169 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
170 const WriterParams &Params; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
171 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
172 // Output stream handling. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
173 std::unique_ptr<raw_fd_ostream> FS; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
174 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
175 uint64_t tell() const { return FS->tell(); } |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
176 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
177 uint64_t writeObject(const ArrayRef<uint8_t> Data); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
178 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
179 template <typename T> uint64_t writeInt(const T &Value) { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
180 support::detail::packed_endian_specific_integral<T, support::little, |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
181 support::unaligned> |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
182 Object(Value); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
183 return writeObject(Object); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
184 } |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
185 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
186 template <typename T> uint64_t writeObject(const T &Value) { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
187 return writeObject(ArrayRef<uint8_t>( |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
188 reinterpret_cast<const uint8_t *>(&Value), sizeof(T))); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
189 } |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
190 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
191 template <typename T> void writeObjectAt(const T &Value, uint64_t Position) { |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
192 FS->pwrite((const char *)&Value, sizeof(T), Position); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
193 } |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
194 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
195 Error writeCString(StringRef Str, bool WriteTerminator = true); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
196 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
197 Error writeIdentifier(const IntOrString &Ident); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
198 Error writeIntOrString(const IntOrString &Data); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
199 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
200 void writeRCInt(RCInt); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
201 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
202 Error appendFile(StringRef Filename); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
203 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
204 void padStream(uint64_t Length); |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
205 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
206 Expected<std::unique_ptr<MemoryBuffer>> loadFile(StringRef File) const; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
207 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
208 // Icon and cursor IDs are allocated starting from 1 and increasing for |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
209 // each icon/cursor dumped. This maintains the current ID to be allocated. |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
210 uint16_t IconCursorID; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
211 }; |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
212 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
213 } // namespace rc |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
214 } // namespace llvm |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
215 |
66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
216 #endif |