blob: af62e532225d3e7e7f29ead9337ff8aaf29f985a [file] [log] [blame]
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +00001//
2// The LLVM Compiler Infrastructure
3//
4// This file is distributed under the University of Illinois Open Source
5// License. See LICENSE.TXT for details.
6//
7//===---------------------------------------------------------------------===//
8//
9// This implements methods defined in ResourceScriptStmt.h.
10//
11// Ref: msdn.microsoft.com/en-us/library/windows/desktop/aa380599(v=vs.85).aspx
12//
13//===---------------------------------------------------------------------===//
14
15#include "ResourceScriptStmt.h"
16
17namespace llvm {
18namespace rc {
19
20raw_ostream &operator<<(raw_ostream &OS, const IntOrString &Item) {
21 if (Item.IsInt)
22 return OS << Item.Data.Int;
23 else
24 return OS << Item.Data.String;
25}
26
27raw_ostream &OptionalStmtList::log(raw_ostream &OS) const {
28 for (const auto &Stmt : Statements) {
29 OS << " Option: ";
30 Stmt->log(OS);
31 }
32 return OS;
33}
34
35raw_ostream &LanguageResource::log(raw_ostream &OS) const {
36 return OS << "Language: " << Lang << ", Sublanguage: " << SubLang << "\n";
37}
38
39raw_ostream &IconResource::log(raw_ostream &OS) const {
40 return OS << "Icon (" << ResName << "): " << IconLoc << "\n";
41}
42
43raw_ostream &StringTableResource::log(raw_ostream &OS) const {
44 OS << "StringTable:\n";
45 OptStatements.log(OS);
46 for (const auto &String : Table)
47 OS << " " << String.first << " => " << String.second << "\n";
48 return OS;
49}
50
51raw_ostream &CharacteristicsStmt::log(raw_ostream &OS) const {
52 return OS << "Characteristics: " << Value << "\n";
53}
54
55raw_ostream &VersionStmt::log(raw_ostream &OS) const {
56 return OS << "Version: " << Value << "\n";
57}
58
59} // namespace rc
60} // namespace llvm