1 //===--- PreprocessorOutputOptions.h ----------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_CLANG_FRONTEND_PREPROCESSOROUTPUTOPTIONS_H 11 #define LLVM_CLANG_FRONTEND_PREPROCESSOROUTPUTOPTIONS_H 12 13 namespace clang { 14 15 /// PreprocessorOutputOptions - Options for controlling the C preprocessor 16 /// output (e.g., -E). 17 class PreprocessorOutputOptions { 18 public: 19 unsigned ShowCPP : 1; ///< Print normal preprocessed output. 20 unsigned ShowComments : 1; ///< Show comments. 21 unsigned ShowLineMarkers : 1; ///< Show \#line markers. 22 unsigned UseLineDirectives : 1; ///< Use \#line instead of GCC-style \# N. 23 unsigned ShowMacroComments : 1; ///< Show comments, even in macros. 24 unsigned ShowMacros : 1; ///< Print macro definitions. 25 unsigned ShowIncludeDirectives : 1; ///< Print includes, imports etc. within preprocessed output. 26 unsigned RewriteIncludes : 1; ///< Preprocess include directives only. 27 unsigned RewriteImports : 1; ///< Include contents of transitively-imported modules. 28 29 public: 30 PreprocessorOutputOptions() { 31 ShowCPP = 0; 32 ShowComments = 0; 33 ShowLineMarkers = 1; 34 UseLineDirectives = 0; 35 ShowMacroComments = 0; 36 ShowMacros = 0; 37 ShowIncludeDirectives = 0; 38 RewriteIncludes = 0; 39 RewriteImports = 0; 40 } 41 }; 42 43 } // end namespace clang 44 45 #endif 46