llvm/llvm/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h

//===-- LVOptions.h ---------------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file defines the LVOptions class, which is used to record the command
// line options.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVOPTIONS_H
#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVOPTIONS_H

#include "llvm/ADT/StringSet.h"
#include "llvm/DebugInfo/LogicalView/Core/LVLine.h"
#include "llvm/DebugInfo/LogicalView/Core/LVScope.h"
#include "llvm/DebugInfo/LogicalView/Core/LVSymbol.h"
#include "llvm/DebugInfo/LogicalView/Core/LVType.h"
#include "llvm/Support/Regex.h"
#include <set>
#include <string>

namespace llvm {
namespace logicalview {

// Generate get and set 'bool' functions.
#define BOOL_FUNCTION(FAMILY, FIELD)

// Generate get and set 'unsigned' functions.
#define UNSIGNED_FUNCTION(FAMILY, FIELD)

// Generate get and set 'std::string' functions.
#define STD_STRING_FUNCTION(FAMILY, FIELD)

// Generate get and set 'std::set' functions.
#define STDSET_FUNCTION_4(FAMILY, FIELD, TYPE, SET)

#define STDSET_FUNCTION_5(FAMILY, FIELD, ENTRY, TYPE, SET)

// Generate get and set functions for '--attribute'
#define ATTRIBUTE_OPTION(FIELD)

// Generate get and set functions for '--output'
#define OUTPUT_OPTION(FIELD)

// Generate get and set functions for '--print'
#define PRINT_OPTION(FIELD)

// Generate get and set functions for '--warning'
#define WARNING_OPTION(FIELD)

// Generate get and set functions for '--compare'
#define COMPARE_OPTION(FIELD)

// Generate get and set functions for '--report'
#define REPORT_OPTION(FIELD)

// Generate get and set functions for '--internal'
#define INTERNAL_OPTION(FIELD)

LVOffsetSet;

enum class LVAttributeKind {};
LVAttributeKindSet;

enum class LVCompareKind {};
LVCompareKindSet;

enum class LVOutputKind {};
LVOutputKindSet;

enum class LVPrintKind {};
LVPrintKindSet;

enum class LVReportKind {};
LVReportKindSet;

enum class LVWarningKind {};
LVWarningKindSet;

enum class LVInternalKind {};
LVInternalKindSet;

// The 'Kinds' members are a one-to-one mapping to the associated command
// options that supports comma separated values. There are other 'bool'
// members that in very few cases point to a command option (see associated
// comment). Other cases for 'bool' refers to internal values derivated from
// the command options.
class LVOptions {};

inline LVOptions &options() {}
inline void setOptions(LVOptions *Options) {}

class LVPatterns final {};

inline LVPatterns &patterns() {}

} // namespace logicalview
} // namespace llvm

#endif // LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVOPTIONS_H