mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-26 06:48:51 -04:00

As for now, the parser supports a limited set of statements and resources. This will be extended in the following patches. Thanks to Nico Weber (thakis) for his original work in this area. This patch was originally submitted as r311175 and got reverted in r311177 because of the problems with compilation under gcc. Differential Revision: https://reviews.llvm.org/D36340 llvm-svn: 311184
61 lines
1.6 KiB
C++
61 lines
1.6 KiB
C++
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===---------------------------------------------------------------------===//
|
|
//
|
|
// This implements methods defined in ResourceScriptStmt.h.
|
|
//
|
|
// Ref: msdn.microsoft.com/en-us/library/windows/desktop/aa380599(v=vs.85).aspx
|
|
//
|
|
//===---------------------------------------------------------------------===//
|
|
|
|
#include "ResourceScriptStmt.h"
|
|
|
|
namespace llvm {
|
|
namespace rc {
|
|
|
|
raw_ostream &operator<<(raw_ostream &OS, const IntOrString &Item) {
|
|
if (Item.IsInt)
|
|
return OS << Item.Data.Int;
|
|
else
|
|
return OS << Item.Data.String;
|
|
}
|
|
|
|
raw_ostream &OptionalStmtList::log(raw_ostream &OS) const {
|
|
for (const auto &Stmt : Statements) {
|
|
OS << " Option: ";
|
|
Stmt->log(OS);
|
|
}
|
|
return OS;
|
|
}
|
|
|
|
raw_ostream &LanguageResource::log(raw_ostream &OS) const {
|
|
return OS << "Language: " << Lang << ", Sublanguage: " << SubLang << "\n";
|
|
}
|
|
|
|
raw_ostream &IconResource::log(raw_ostream &OS) const {
|
|
return OS << "Icon (" << ResName << "): " << IconLoc << "\n";
|
|
}
|
|
|
|
raw_ostream &StringTableResource::log(raw_ostream &OS) const {
|
|
OS << "StringTable:\n";
|
|
OptStatements.log(OS);
|
|
for (const auto &String : Table)
|
|
OS << " " << String.first << " => " << String.second << "\n";
|
|
return OS;
|
|
}
|
|
|
|
raw_ostream &CharacteristicsStmt::log(raw_ostream &OS) const {
|
|
return OS << "Characteristics: " << Value << "\n";
|
|
}
|
|
|
|
raw_ostream &VersionStmt::log(raw_ostream &OS) const {
|
|
return OS << "Version: " << Value << "\n";
|
|
}
|
|
|
|
} // namespace rc
|
|
} // namespace llvm
|