summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/YAML/YamlKeyValues.h
blob: 9f0e964cba525d5e7118b2013281d8b34411c75d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//===- lib/ReaderWriter/YAML/YamlKeyValues.h ------------------------------===//
//
//                             The LLVM Linker
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef LLD_CORE_YAML_KEY_VALUES_H_
#define LLD_CORE_YAML_KEY_VALUES_H_

#include "lld/Core/Atom.h"
#include "lld/Core/DefinedAtom.h"
#include "lld/Core/UndefinedAtom.h"
#include "lld/Core/File.h"

namespace lld {
namespace yaml {

class KeyValues {
public:

  static const char* const                definitionKeyword;
  static const Atom::Definition           definitionDefault;
  static bool                             definition(StringRef, Atom::Definition&);
  static const char*                      definition(Atom::Definition);

  static const char* const                scopeKeyword;
  static const DefinedAtom::Scope         scopeDefault;
  static bool                             scope(StringRef, DefinedAtom::Scope&);
  static const char*                      scope(DefinedAtom::Scope);

  static const char* const                contentTypeKeyword;
  static const DefinedAtom::ContentType   contentTypeDefault;
  static bool                             contentType(StringRef, DefinedAtom::ContentType&);
  static const char*                      contentType(DefinedAtom::ContentType);

  static const char* const                deadStripKindKeyword;
  static const DefinedAtom::DeadStripKind deadStripKindDefault;
  static bool                             deadStripKind(StringRef, DefinedAtom::DeadStripKind&);
  static const char*                      deadStripKind(DefinedAtom::DeadStripKind);

  static const char* const                sectionChoiceKeyword;
  static const DefinedAtom::SectionChoice sectionChoiceDefault;
  static bool                             sectionChoice(StringRef,  DefinedAtom::SectionChoice&);
  static const char*                      sectionChoice(DefinedAtom::SectionChoice);

  static const char* const                interposableKeyword;
  static const DefinedAtom::Interposable  interposableDefault;
  static bool                             interposable(StringRef, DefinedAtom::Interposable&);
  static const char*                      interposable(DefinedAtom::Interposable);

  static const char* const                mergeKeyword;
  static const DefinedAtom::Merge         mergeDefault;
  static bool                             merge(StringRef, DefinedAtom::Merge&);
  static const char*                      merge(DefinedAtom::Merge);

  static const char* const                      permissionsKeyword;
  static const DefinedAtom::ContentPermissions  permissionsDefault;
  static bool                                   permissions(StringRef, DefinedAtom::ContentPermissions&);
  static const char*                            permissions(DefinedAtom::ContentPermissions);

  static const char* const                isThumbKeyword;
  static const bool                       isThumbDefault;
  static bool                             isThumb(StringRef, bool&);
  static const char*                      isThumb(bool);

  static const char* const                isAliasKeyword;
  static const bool                       isAliasDefault;
  static bool                             isAlias(StringRef, bool&);
  static const char*                      isAlias(bool);

  static const char* const                canBeNullKeyword;
  static const UndefinedAtom::CanBeNull   canBeNullDefault;
  static bool                             canBeNull(StringRef, UndefinedAtom::CanBeNull&);
  static const char*                      canBeNull(UndefinedAtom::CanBeNull);

};

} // namespace yaml
} // namespace lld

#endif // LLD_CORE_YAML_KEY_VALUES_H_
OpenPOWER on IntegriCloud