diff options
author | Marek Sokolowski <mnbvmar@gmail.com> | 2017-08-28 22:58:31 +0000 |
---|---|---|
committer | Marek Sokolowski <mnbvmar@gmail.com> | 2017-08-28 22:58:31 +0000 |
commit | 7f110527415edc30c2abd027736347a80708cb98 (patch) | |
tree | e9f895228bd5f85c3fd09788de7c7d67afb5eae8 /llvm/tools/llvm-rc/ResourceScriptStmt.cpp | |
parent | c07008653c109345b1446f27f2ccc72dbfe5da41 (diff) | |
download | bcm5719-llvm-7f110527415edc30c2abd027736347a80708cb98.tar.gz bcm5719-llvm-7f110527415edc30c2abd027736347a80708cb98.zip |
[llvm-rc] Add ACCELERATORS parsing ability. (parser, pt 3/8).
This improves the current llvm-rc parser by the ability of parsing
ACCELERATORS statement.
Moreover, some small improvements to the original parsing commit
were made.
Thanks for Nico Weber for his original work in this area.
Differential Revision: https://reviews.llvm.org/D36894
llvm-svn: 311946
Diffstat (limited to 'llvm/tools/llvm-rc/ResourceScriptStmt.cpp')
-rw-r--r-- | llvm/tools/llvm-rc/ResourceScriptStmt.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/tools/llvm-rc/ResourceScriptStmt.cpp b/llvm/tools/llvm-rc/ResourceScriptStmt.cpp index f008641ff76..150b668bd91 100644 --- a/llvm/tools/llvm-rc/ResourceScriptStmt.cpp +++ b/llvm/tools/llvm-rc/ResourceScriptStmt.cpp @@ -36,6 +36,23 @@ raw_ostream &LanguageResource::log(raw_ostream &OS) const { return OS << "Language: " << Lang << ", Sublanguage: " << SubLang << "\n"; } +StringRef AcceleratorsResource::Accelerator::OptionsStr + [AcceleratorsResource::Accelerator::NumFlags] = { + "ASCII", "VIRTKEY", "NOINVERT", "ALT", "SHIFT", "CONTROL"}; + +raw_ostream &AcceleratorsResource::log(raw_ostream &OS) const { + OS << "Accelerators (" << ResName << "): \n"; + OptStatements.log(OS); + for (const auto &Acc : Accelerators) { + OS << " Accelerator: " << Acc.Event << " " << Acc.Id; + for (size_t i = 0; i < Accelerator::NumFlags; ++i) + if (Acc.Flags & (1U << i)) + OS << " " << Accelerator::OptionsStr[i]; + OS << "\n"; + } + return OS; +} + raw_ostream &CursorResource::log(raw_ostream &OS) const { return OS << "Cursor (" << ResName << "): " << CursorLoc << "\n"; } |