xref: /llvm-project/llvm/lib/ObjectYAML/GOFFYAML.cpp (revision 5b7102d1f37eab7a8f17b7bf4124ca76fbdbd66d)
1*fd6e19cdSYusra Syeda //===-- GOFFYAML.cpp - GOFF YAMLIO implementation ---------------*- C++ -*-===//
2*fd6e19cdSYusra Syeda //
3*fd6e19cdSYusra Syeda // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*fd6e19cdSYusra Syeda // See https://llvm.org/LICENSE.txt for license information.
5*fd6e19cdSYusra Syeda // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*fd6e19cdSYusra Syeda //
7*fd6e19cdSYusra Syeda //===----------------------------------------------------------------------===//
8*fd6e19cdSYusra Syeda //
9*fd6e19cdSYusra Syeda // This file defines classes for handling the YAML representation of GOFF.
10*fd6e19cdSYusra Syeda //
11*fd6e19cdSYusra Syeda //===----------------------------------------------------------------------===//
12*fd6e19cdSYusra Syeda 
13*fd6e19cdSYusra Syeda #include "llvm/ObjectYAML/GOFFYAML.h"
14*fd6e19cdSYusra Syeda 
15*fd6e19cdSYusra Syeda namespace llvm {
16*fd6e19cdSYusra Syeda namespace GOFFYAML {
17*fd6e19cdSYusra Syeda 
18*fd6e19cdSYusra Syeda Object::Object() {}
19*fd6e19cdSYusra Syeda 
20*fd6e19cdSYusra Syeda } // namespace GOFFYAML
21*fd6e19cdSYusra Syeda 
22*fd6e19cdSYusra Syeda namespace yaml {
23*fd6e19cdSYusra Syeda 
24*fd6e19cdSYusra Syeda void MappingTraits<GOFFYAML::FileHeader>::mapping(
25*fd6e19cdSYusra Syeda     IO &IO, GOFFYAML::FileHeader &FileHdr) {
26*fd6e19cdSYusra Syeda   IO.mapOptional("TargetEnvironment", FileHdr.TargetEnvironment, 0);
27*fd6e19cdSYusra Syeda   IO.mapOptional("TargetOperatingSystem", FileHdr.TargetOperatingSystem, 0);
28*fd6e19cdSYusra Syeda   IO.mapOptional("CCSID", FileHdr.CCSID, 0);
29*fd6e19cdSYusra Syeda   IO.mapOptional("CharacterSetName", FileHdr.CharacterSetName, "");
30*fd6e19cdSYusra Syeda   IO.mapOptional("LanguageProductIdentifier", FileHdr.LanguageProductIdentifier,
31*fd6e19cdSYusra Syeda                  "");
32*fd6e19cdSYusra Syeda   IO.mapOptional("ArchitectureLevel", FileHdr.ArchitectureLevel, 1);
33*fd6e19cdSYusra Syeda   IO.mapOptional("InternalCCSID", FileHdr.InternalCCSID);
34*fd6e19cdSYusra Syeda   IO.mapOptional("TargetSoftwareEnvironment",
35*fd6e19cdSYusra Syeda                  FileHdr.TargetSoftwareEnvironment);
36*fd6e19cdSYusra Syeda }
37*fd6e19cdSYusra Syeda 
38*fd6e19cdSYusra Syeda void MappingTraits<GOFFYAML::Object>::mapping(IO &IO, GOFFYAML::Object &Obj) {
39*fd6e19cdSYusra Syeda   IO.mapTag("!GOFF", true);
40*fd6e19cdSYusra Syeda   IO.mapRequired("FileHeader", Obj.Header);
41*fd6e19cdSYusra Syeda }
42*fd6e19cdSYusra Syeda 
43*fd6e19cdSYusra Syeda } // namespace yaml
44*fd6e19cdSYusra Syeda } // namespace llvm
45