1//===--- PreprocessorOutputOptions.h ----------------------------*- 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-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef LLVM_CLANG_FRONTEND_PREPROCESSOROUTPUTOPTIONS_H 10#define LLVM_CLANG_FRONTEND_PREPROCESSOROUTPUTOPTIONS_H 11 12namespace clang { 13 14/// PreprocessorOutputOptions - Options for controlling the C preprocessor 15/// output (e.g., -E). 16class PreprocessorOutputOptions { 17public: 18 unsigned ShowCPP : 1; ///< Print normal preprocessed output. 19 unsigned ShowComments : 1; ///< Show comments. 20 unsigned ShowLineMarkers : 1; ///< Show \#line markers. 21 unsigned UseLineDirectives : 1; ///< Use \#line instead of GCC-style \# N. 22 unsigned ShowMacroComments : 1; ///< Show comments, even in macros. 23 unsigned ShowMacros : 1; ///< Print macro definitions. 24 unsigned ShowIncludeDirectives : 1; ///< Print includes, imports etc. within preprocessed output. 25 unsigned RewriteIncludes : 1; ///< Preprocess include directives only. 26 unsigned RewriteImports : 1; ///< Include contents of transitively-imported modules. 27 28public: 29 PreprocessorOutputOptions() { 30 ShowCPP = 0; 31 ShowComments = 0; 32 ShowLineMarkers = 1; 33 UseLineDirectives = 0; 34 ShowMacroComments = 0; 35 ShowMacros = 0; 36 ShowIncludeDirectives = 0; 37 RewriteIncludes = 0; 38 RewriteImports = 0; 39 } 40}; 41 42} // end namespace clang 43 44#endif 45