Convert terminology in the Lexer from 'instantiate' and variants to

'expand'. Also update the public API it provides to the new term, and
propagate that update to the various clients.

No functionality changed.

llvm-svn: 135138
This commit is contained in:
Chandler Carruth 2011-07-14 08:20:40 +00:00
parent c9c8419c38
commit e2c09ebcaa
6 changed files with 43 additions and 42 deletions

View File

@ -95,8 +95,8 @@ public:
/// _Pragma expansion. This has a variety of magic semantics that this method
/// sets up. It returns a new'd Lexer that must be delete'd when done.
static Lexer *Create_PragmaLexer(SourceLocation SpellingLoc,
SourceLocation InstantiationLocStart,
SourceLocation InstantiationLocEnd,
SourceLocation ExpansionLocStart,
SourceLocation ExpansionLocEnd,
unsigned TokLen, Preprocessor &PP);
@ -241,8 +241,8 @@ public:
/// is not necessary to copy any data, then the returned string may
/// not point into the provided buffer.
///
/// This method lexes at the instantiation depth of the given
/// location and does not jump to the instantiation or spelling
/// This method lexes at the expansion depth of the given
/// location and does not jump to the expansion or spelling
/// location.
static llvm::StringRef getSpelling(SourceLocation loc,
llvm::SmallVectorImpl<char> &buffer,
@ -295,14 +295,14 @@ public:
const LangOptions &Features);
/// \brief Returns true if the given MacroID location points at the first
/// token of the macro instantiation.
static bool isAtStartOfMacroInstantiation(SourceLocation loc,
/// token of the macro expansion.
static bool isAtStartOfMacroExpansion(SourceLocation loc,
const SourceManager &SM,
const LangOptions &LangOpts);
/// \brief Returns true if the given MacroID location points at the last
/// token of the macro instantiation.
static bool isAtEndOfMacroInstantiation(SourceLocation loc,
/// token of the macro expansion.
static bool isAtEndOfMacroExpansion(SourceLocation loc,
const SourceManager &SM,
const LangOptions &LangOpts);

View File

@ -755,14 +755,14 @@ public:
/// \brief Returns true if the given MacroID location points at the first
/// token of the macro instantiation.
bool isAtStartOfMacroInstantiation(SourceLocation loc) const {
return Lexer::isAtStartOfMacroInstantiation(loc, SourceMgr, Features);
bool isAtStartOfMacroExpansion(SourceLocation loc) const {
return Lexer::isAtStartOfMacroExpansion(loc, SourceMgr, Features);
}
/// \brief Returns true if the given MacroID location points at the last
/// token of the macro instantiation.
bool isAtEndOfMacroInstantiation(SourceLocation loc) const {
return Lexer::isAtEndOfMacroInstantiation(loc, SourceMgr, Features);
bool isAtEndOfMacroExpansion(SourceLocation loc) const {
return Lexer::isAtEndOfMacroExpansion(loc, SourceMgr, Features);
}
/// DumpToken - Print the token to stderr, used for debugging.

View File

@ -388,7 +388,7 @@ bool TransformActionsImpl::canInsert(SourceLocation loc) {
if (loc.isFileID())
return true;
return PP.isAtStartOfMacroInstantiation(loc);
return PP.isAtStartOfMacroExpansion(loc);
}
bool TransformActionsImpl::canInsertAfterToken(SourceLocation loc) {
@ -401,7 +401,7 @@ bool TransformActionsImpl::canInsertAfterToken(SourceLocation loc) {
if (loc.isFileID())
return true;
return PP.isAtEndOfMacroInstantiation(loc);
return PP.isAtEndOfMacroExpansion(loc);
}
bool TransformActionsImpl::canRemoveRange(SourceRange range) {

View File

@ -94,7 +94,7 @@ SourceLocation trans::findLocationAfterSemi(SourceLocation loc,
ASTContext &Ctx) {
SourceManager &SM = Ctx.getSourceManager();
if (loc.isMacroID()) {
if (!Lexer::isAtEndOfMacroInstantiation(loc, SM, Ctx.getLangOptions()))
if (!Lexer::isAtEndOfMacroExpansion(loc, SM, Ctx.getLangOptions()))
return SourceLocation();
loc = SM.getInstantiationRange(loc).second;
}

View File

@ -156,7 +156,7 @@ Lexer::Lexer(FileID FID, const llvm::MemoryBuffer *FromFile,
///
/// On entrance to this routine, TokStartLoc is a macro location which has a
/// spelling loc that indicates the bytes to be lexed for the token and an
/// instantiation location that indicates where all lexed tokens should be
/// expansion location that indicates where all lexed tokens should be
/// "expanded from".
///
/// FIXME: It would really be nice to make _Pragma just be a wrapper around a
@ -166,8 +166,8 @@ Lexer::Lexer(FileID FID, const llvm::MemoryBuffer *FromFile,
/// out of the critical path of the lexer!
///
Lexer *Lexer::Create_PragmaLexer(SourceLocation SpellingLoc,
SourceLocation InstantiationLocStart,
SourceLocation InstantiationLocEnd,
SourceLocation ExpansionLocStart,
SourceLocation ExpansionLocEnd,
unsigned TokLen, Preprocessor &PP) {
SourceManager &SM = PP.getSourceManager();
@ -188,8 +188,8 @@ Lexer *Lexer::Create_PragmaLexer(SourceLocation SpellingLoc,
// Set the SourceLocation with the remapping information. This ensures that
// GetMappedTokenLoc will remap the tokens as they are lexed.
L->FileLoc = SM.createInstantiationLoc(SM.getLocForStartOfFile(SpellingFID),
InstantiationLocStart,
InstantiationLocEnd, TokLen);
ExpansionLocStart,
ExpansionLocEnd, TokLen);
// Ensure that the lexer thinks it is inside a directive, so that end \n will
// return an EOD token.
@ -621,7 +621,7 @@ SourceLocation Lexer::AdvanceToTokenCharacter(SourceLocation TokStart,
unsigned CharNo,
const SourceManager &SM,
const LangOptions &Features) {
// Figure out how many physical characters away the specified instantiation
// Figure out how many physical characters away the specified expansion
// character is. This needs to take into consideration newlines and
// trigraphs.
bool Invalid = false;
@ -683,10 +683,10 @@ SourceLocation Lexer::getLocForEndOfToken(SourceLocation Loc, unsigned Offset,
return SourceLocation();
if (Loc.isMacroID()) {
if (Offset > 0 || !isAtEndOfMacroInstantiation(Loc, SM, Features))
return SourceLocation(); // Points inside the macro instantiation.
if (Offset > 0 || !isAtEndOfMacroExpansion(Loc, SM, Features))
return SourceLocation(); // Points inside the macro expansion.
// Continue and find the location just after the macro instantiation.
// Continue and find the location just after the macro expansion.
Loc = SM.getInstantiationRange(Loc).second;
}
@ -700,8 +700,8 @@ SourceLocation Lexer::getLocForEndOfToken(SourceLocation Loc, unsigned Offset,
}
/// \brief Returns true if the given MacroID location points at the first
/// token of the macro instantiation.
bool Lexer::isAtStartOfMacroInstantiation(SourceLocation loc,
/// token of the macro expansion.
bool Lexer::isAtStartOfMacroExpansion(SourceLocation loc,
const SourceManager &SM,
const LangOptions &LangOpts) {
assert(loc.isValid() && loc.isMacroID() && "Expected a valid macro loc");
@ -712,17 +712,18 @@ bool Lexer::isAtStartOfMacroInstantiation(SourceLocation loc,
if (infoLoc.second > 0)
return false; // Does not point at the start of token.
SourceLocation instLoc =
SM.getSLocEntry(infoLoc.first).getInstantiation().getInstantiationLocStart();
if (instLoc.isFileID())
return true; // No other macro instantiations, this is the first.
SourceLocation expansionLoc =
SM.getSLocEntry(infoLoc.first)
.getInstantiation().getInstantiationLocStart();
if (expansionLoc.isFileID())
return true; // No other macro expansions, this is the first.
return isAtStartOfMacroInstantiation(instLoc, SM, LangOpts);
return isAtStartOfMacroExpansion(expansionLoc, SM, LangOpts);
}
/// \brief Returns true if the given MacroID location points at the last
/// token of the macro instantiation.
bool Lexer::isAtEndOfMacroInstantiation(SourceLocation loc,
/// token of the macro expansion.
bool Lexer::isAtEndOfMacroExpansion(SourceLocation loc,
const SourceManager &SM,
const LangOptions &LangOpts) {
assert(loc.isValid() && loc.isMacroID() && "Expected a valid macro loc");
@ -742,12 +743,12 @@ bool Lexer::isAtEndOfMacroInstantiation(SourceLocation loc,
if (FID == SM.getFileID(afterLoc))
return false; // Still in the same FileID, does not point to the last token.
SourceLocation instLoc =
SourceLocation expansionLoc =
SM.getSLocEntry(FID).getInstantiation().getInstantiationLocEnd();
if (instLoc.isFileID())
return true; // No other macro instantiations.
if (expansionLoc.isFileID())
return true; // No other macro expansions.
return isAtEndOfMacroInstantiation(instLoc, SM, LangOpts);
return isAtEndOfMacroExpansion(expansionLoc, SM, LangOpts);
}
//===----------------------------------------------------------------------===//
@ -888,7 +889,7 @@ static inline bool isNumberBody(unsigned char c) {
//===----------------------------------------------------------------------===//
/// GetMappedTokenLoc - If lexing out of a 'mapped buffer', where we pretend the
/// lexer buffer was all instantiated at a single point, perform the mapping.
/// lexer buffer was all expanded at a single point, perform the mapping.
/// This is currently only used for _Pragma implementation, so it is the slow
/// path of the hot getSourceLocation method. Do not allow it to be inlined.
static LLVM_ATTRIBUTE_NOINLINE SourceLocation GetMappedTokenLoc(
@ -896,14 +897,14 @@ static LLVM_ATTRIBUTE_NOINLINE SourceLocation GetMappedTokenLoc(
static SourceLocation GetMappedTokenLoc(Preprocessor &PP,
SourceLocation FileLoc,
unsigned CharNo, unsigned TokLen) {
assert(FileLoc.isMacroID() && "Must be an instantiation");
assert(FileLoc.isMacroID() && "Must be a macro expansion");
// Otherwise, we're lexing "mapped tokens". This is used for things like
// _Pragma handling. Combine the instantiation location of FileLoc with the
// _Pragma handling. Combine the expansion location of FileLoc with the
// spelling location.
SourceManager &SM = PP.getSourceManager();
// Create a new SLoc which is expanded from Instantiation(FileLoc) but whose
// Create a new SLoc which is expanded from Expansion(FileLoc) but whose
// characters come from spelling(FileLoc)+Offset.
SourceLocation SpellingLoc = SM.getSpellingLoc(FileLoc);
SpellingLoc = SpellingLoc.getFileLocWithOffset(CharNo);

View File

@ -310,7 +310,7 @@ Parser::ParseRHSOfBinaryExpression(ExprResult LHS, prec::Level MinPrec) {
SourceLocation FILoc = Tok.getLocation();
const char *FIText = ": ";
const SourceManager &SM = PP.getSourceManager();
if (FILoc.isFileID() || PP.isAtStartOfMacroInstantiation(FILoc)) {
if (FILoc.isFileID() || PP.isAtStartOfMacroExpansion(FILoc)) {
FILoc = SM.getInstantiationLoc(FILoc);
bool IsInvalid = false;
const char *SourcePtr =