#include "Macros.h"
#include "Encoding.h"
#include "FormatToken.h"
#include "FormatTokenLexer.h"
#include "clang/Basic/TokenKinds.h"
#include "clang/Format/Format.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/HeaderSearchOptions.h"
#include "clang/Lex/Lexer.h"
#include "clang/Lex/ModuleLoader.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Lex/PreprocessorOptions.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/ErrorHandling.h"
namespace clang {
namespace format {
struct MacroExpander::Definition { … };
class MacroExpander::DefinitionParser { … };
MacroExpander::MacroExpander(
const std::vector<std::string> &Macros, SourceManager &SourceMgr,
const FormatStyle &Style,
llvm::SpecificBumpPtrAllocator<FormatToken> &Allocator,
IdentifierTable &IdentTable)
: … { … }
MacroExpander::~MacroExpander() = default;
void MacroExpander::parseDefinition(const std::string &Macro) { … }
bool MacroExpander::defined(StringRef Name) const { … }
bool MacroExpander::objectLike(StringRef Name) const { … }
bool MacroExpander::hasArity(StringRef Name, unsigned Arity) const { … }
SmallVector<FormatToken *, 8>
MacroExpander::expand(FormatToken *ID,
std::optional<ArgsList> OptionalArgs) const { … }
}
}