clang
6.0.0
|
Describes how types, statements, expressions, and declarations should be printed. More...
#include "clang/AST/PrettyPrinter.h"
Public Member Functions | |
PrintingPolicy (const LangOptions &LO) | |
Create a default printing policy for the specified language. More... | |
void | adjustForCPlusPlus () |
Adjust this printing policy for cases where it's known that we're printing C++ code (for instance, if AST dumping reaches a C++-only construct). More... | |
Public Attributes | |
unsigned | Indentation: 8 |
The number of spaces to use to indent each line. More... | |
bool | SuppressSpecifiers: 1 |
Whether we should suppress printing of the actual specifiers for the given type or declaration. More... | |
bool | SuppressTagKeyword: 1 |
Whether type printing should skip printing the tag keyword. More... | |
bool | IncludeTagDefinition: 1 |
When true, include the body of a tag definition. More... | |
bool | SuppressScope: 1 |
Suppresses printing of scope specifiers. More... | |
bool | SuppressUnwrittenScope: 1 |
Suppress printing parts of scope specifiers that don't need to be written, e.g., for inline or anonymous namespaces. More... | |
bool | SuppressInitializers: 1 |
Suppress printing of variable initializers. More... | |
bool | ConstantArraySizeAsWritten: 1 |
Whether we should print the sizes of constant array expressions as written in the sources. More... | |
bool | AnonymousTagLocations: 1 |
When printing an anonymous tag name, also print the location of that entity (e.g., "enum <anonymous at t.h:10:5>"). More... | |
unsigned | SuppressStrongLifetime: 1 |
When true, suppress printing of the __strong lifetime qualifier in ARC. More... | |
unsigned | SuppressLifetimeQualifiers: 1 |
When true, suppress printing of lifetime qualifier in ARC. More... | |
unsigned | SuppressTemplateArgsInCXXConstructors: 1 |
When true, suppresses printing template arguments in names of C++ constructors. More... | |
unsigned | Bool: 1 |
Whether we can use 'bool' rather than '_Bool' (even if the language doesn't actually have 'bool', because, e.g., it is defined as a macro). More... | |
unsigned | Restrict: 1 |
Whether we can use 'restrict' rather than '__restrict'. More... | |
unsigned | Alignof: 1 |
Whether we can use 'alignof' rather than '__alignof'. More... | |
unsigned | UnderscoreAlignof: 1 |
Whether we can use '_Alignof' rather than '__alignof'. More... | |
unsigned | UseVoidForZeroParams: 1 |
Whether we should use '(void)' rather than '()' for a function prototype with zero parameters. More... | |
unsigned | TerseOutput: 1 |
Provide a 'terse' output. More... | |
unsigned | PolishForDeclaration: 1 |
When true, do certain refinement needed for producing proper declaration tag; such as, do not print attributes attached to the declaration. More... | |
unsigned | Half: 1 |
When true, print the half-precision floating-point type as 'half' instead of '__fp16'. More... | |
unsigned | MSWChar: 1 |
When true, print the built-in wchar_t type as __wchar_t. More... | |
unsigned | IncludeNewlines: 1 |
When true, include newlines after statements like "break", etc. More... | |
bool | MSVCFormatting: 1 |
Use whitespace and punctuation like MSVC does. More... | |
bool | ConstantsAsWritten: 1 |
Whether we should print the constant expressions as written in the sources. More... | |
bool | SuppressImplicitBase: 1 |
When true, don't print the implicit 'self' or 'this' expressions. More... | |
bool | FullyQualifiedName: 1 |
When true, print the fully qualified name of function declarations. More... | |
Describes how types, statements, expressions, and declarations should be printed.
This type is intended to be small and suitable for passing by value. It is very frequently copied.
Definition at line 38 of file PrettyPrinter.h.
|
inline |
Create a default printing policy for the specified language.
Definition at line 40 of file PrettyPrinter.h.
|
inline |
Adjust this printing policy for cases where it's known that we're printing C++ code (for instance, if AST dumping reaches a C++-only construct).
This should not be used if a real LangOptions object is available.
Definition at line 61 of file PrettyPrinter.h.
Referenced by clang::DeclarationName::print(), and printCXXConstructorDestructorName().
unsigned clang::PrintingPolicy::Alignof |
Whether we can use 'alignof' rather than '__alignof'.
Definition at line 167 of file PrettyPrinter.h.
Referenced by PrintFloatingLiteral().
bool clang::PrintingPolicy::AnonymousTagLocations |
When printing an anonymous tag name, also print the location of that entity (e.g., "enum <anonymous at t.h:10:5>").
Otherwise, just prints "(anonymous)" for the name.
Definition at line 147 of file PrettyPrinter.h.
Referenced by clang::diff::SyntaxTree::Impl::Impl().
unsigned clang::PrintingPolicy::Bool |
Whether we can use 'bool' rather than '_Bool' (even if the language doesn't actually have 'bool', because, e.g., it is defined as a macro).
Definition at line 161 of file PrettyPrinter.h.
Referenced by clang::BuiltinType::getName(), and clang::DeclSpec::getSpecifierName().
bool clang::PrintingPolicy::ConstantArraySizeAsWritten |
Whether we should print the sizes of constant array expressions as written in the sources.
This flag determines whether array types declared as
will be printed as written or as follows:
Definition at line 142 of file PrettyPrinter.h.
bool clang::PrintingPolicy::ConstantsAsWritten |
Whether we should print the constant expressions as written in the sources.
This flag determines whether constants expressions like
will be printed as written or as follows:
Definition at line 220 of file PrettyPrinter.h.
Referenced by printExprAsWritten(), and PrintFloatingLiteral().
bool clang::PrintingPolicy::FullyQualifiedName |
When true, print the fully qualified name of function declarations.
This is the opposite of SuppressScope and thus overrules it.
Definition at line 227 of file PrettyPrinter.h.
unsigned clang::PrintingPolicy::Half |
When true, print the half-precision floating-point type as 'half' instead of '__fp16'.
Definition at line 190 of file PrettyPrinter.h.
Referenced by clang::BuiltinType::getName().
unsigned clang::PrintingPolicy::IncludeNewlines |
When true, include newlines after statements like "break", etc.
Definition at line 197 of file PrettyPrinter.h.
bool clang::PrintingPolicy::IncludeTagDefinition |
When true, include the body of a tag definition.
This is used to place the definition of a struct in the middle of another declaration as with:
Definition at line 104 of file PrettyPrinter.h.
Referenced by AppendTypeQualList(), clang::getParameterABISpelling(), and clang::Decl::printGroup().
unsigned clang::PrintingPolicy::Indentation |
The number of spaces to use to indent each line.
Definition at line 68 of file PrettyPrinter.h.
bool clang::PrintingPolicy::MSVCFormatting |
Use whitespace and punctuation like MSVC does.
In particular, this prints anonymous namespaces as `anonymous namespace' and does not insert spaces after template arguments.
Definition at line 202 of file PrettyPrinter.h.
Referenced by printIntegral().
unsigned clang::PrintingPolicy::MSWChar |
When true, print the built-in wchar_t type as __wchar_t.
For use in Microsoft mode when wchar_t is not available.
Definition at line 194 of file PrettyPrinter.h.
Referenced by clang::BuiltinType::getName(), and clang::DeclSpec::getSpecifierName().
unsigned clang::PrintingPolicy::PolishForDeclaration |
When true, do certain refinement needed for producing proper declaration tag; such as, do not print attributes attached to the declaration.
Definition at line 186 of file PrettyPrinter.h.
unsigned clang::PrintingPolicy::Restrict |
Whether we can use 'restrict' rather than '__restrict'.
Definition at line 164 of file PrettyPrinter.h.
bool clang::PrintingPolicy::SuppressImplicitBase |
When true, don't print the implicit 'self' or 'this' expressions.
Definition at line 223 of file PrettyPrinter.h.
Referenced by isImplicitSelf(), and isImplicitThis().
bool clang::PrintingPolicy::SuppressInitializers |
Suppress printing of variable initializers.
This flag is used when printing the loop variable in a for-range statement. For example, given:
SuppressInitializers will be true when printing "auto x", so that the internal initializer constructed for x will not be printed.
Definition at line 124 of file PrettyPrinter.h.
unsigned clang::PrintingPolicy::SuppressLifetimeQualifiers |
When true, suppress printing of lifetime qualifier in ARC.
Definition at line 153 of file PrettyPrinter.h.
bool clang::PrintingPolicy::SuppressScope |
Suppresses printing of scope specifiers.
Definition at line 107 of file PrettyPrinter.h.
Referenced by clang::TypeName::getFullyQualifiedName(), and clang::NestedNameSpecifier::print().
bool clang::PrintingPolicy::SuppressSpecifiers |
Whether we should suppress printing of the actual specifiers for the given type or declaration.
This flag is only used when we are printing declarators beyond the first declarator within a declaration group. For example, given:
SuppressSpecifiers will be false when printing the declaration for "x", so that we will print "int *x"; it will be true
when we print "y", so that we suppress printing the "const int" type specifier and instead only print the "*y".
Definition at line 84 of file PrettyPrinter.h.
Referenced by clang::Decl::printGroup().
unsigned clang::PrintingPolicy::SuppressStrongLifetime |
When true, suppress printing of the __strong lifetime qualifier in ARC.
Definition at line 150 of file PrettyPrinter.h.
Referenced by clang::TemplateArgument::print(), and rewriteToObjCProperty().
bool clang::PrintingPolicy::SuppressTagKeyword |
Whether type printing should skip printing the tag keyword.
This is used when printing the inner type of elaborated types, (as the tag keyword is part of the elaborated type):
Definition at line 94 of file PrettyPrinter.h.
unsigned clang::PrintingPolicy::SuppressTemplateArgsInCXXConstructors |
When true, suppresses printing template arguments in names of C++ constructors.
Definition at line 157 of file PrettyPrinter.h.
Referenced by printCXXConstructorDestructorName(), and clang::index::printSymbolName().
bool clang::PrintingPolicy::SuppressUnwrittenScope |
Suppress printing parts of scope specifiers that don't need to be written, e.g., for inline or anonymous namespaces.
Definition at line 111 of file PrettyPrinter.h.
unsigned clang::PrintingPolicy::TerseOutput |
Provide a 'terse' output.
For example, in this mode we don't print function bodies, class members, declarations inside namespaces etc. Effectively, this should print only the requested declaration.
Definition at line 181 of file PrettyPrinter.h.
unsigned clang::PrintingPolicy::UnderscoreAlignof |
Whether we can use '_Alignof' rather than '__alignof'.
Definition at line 170 of file PrettyPrinter.h.
Referenced by PrintFloatingLiteral().
unsigned clang::PrintingPolicy::UseVoidForZeroParams |
Whether we should use '(void)' rather than '()' for a function prototype with zero parameters.
Definition at line 174 of file PrettyPrinter.h.