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