diff options
author | Chris Lattner <sabre@nondot.org> | 2007-10-07 08:47:24 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-10-07 08:47:24 +0000 |
commit | dbf388b54bb1688ee4470c61235494cbc34b8f3c (patch) | |
tree | 94ea7bc9a02affd8f64008f62ae9c59f95c79c5d /Lex | |
parent | cc1a875f94630e58d24a55577ffbf0e89b7da8c7 (diff) |
implement the Token class in the Lexer.cpp file instead of IdentifierInfo.cpp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42728 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Lex')
-rw-r--r-- | Lex/IdentifierTable.cpp | 19 | ||||
-rw-r--r-- | Lex/Lexer.cpp | 29 |
2 files changed, 25 insertions, 23 deletions
diff --git a/Lex/IdentifierTable.cpp b/Lex/IdentifierTable.cpp index f0baa15516..c4c1ee358d 100644 --- a/Lex/IdentifierTable.cpp +++ b/Lex/IdentifierTable.cpp @@ -19,25 +19,6 @@ using namespace clang; //===----------------------------------------------------------------------===// -// Token Implementation -//===----------------------------------------------------------------------===// - -// FIXME: Move this elsewhere! -#include "clang/Lex/Token.h" - -/// isObjCAtKeyword - Return true if we have an ObjC keyword identifier. -bool Token::isObjCAtKeyword(tok::ObjCKeywordKind objcKey) const { - return getKind() == tok::identifier && - getIdentifierInfo()->getObjCKeywordID() == objcKey; -} - -/// getObjCKeywordID - Return the ObjC keyword kind. -tok::ObjCKeywordKind Token::getObjCKeywordID() const { - IdentifierInfo *specId = getIdentifierInfo(); - return specId ? specId->getObjCKeywordID() : tok::objc_not_keyword; -} - -//===----------------------------------------------------------------------===// // IdentifierInfo Implementation //===----------------------------------------------------------------------===// diff --git a/Lex/Lexer.cpp b/Lex/Lexer.cpp index f8640b3556..0c67d2ab73 100644 --- a/Lex/Lexer.cpp +++ b/Lex/Lexer.cpp @@ -35,6 +35,27 @@ using namespace clang; static void InitCharacterInfo(); +//===----------------------------------------------------------------------===// +// Token Class Implementation +//===----------------------------------------------------------------------===// + +/// isObjCAtKeyword - Return true if we have an ObjC keyword identifier. +bool Token::isObjCAtKeyword(tok::ObjCKeywordKind objcKey) const { + return getKind() == tok::identifier && + getIdentifierInfo()->getObjCKeywordID() == objcKey; +} + +/// getObjCKeywordID - Return the ObjC keyword kind. +tok::ObjCKeywordKind Token::getObjCKeywordID() const { + IdentifierInfo *specId = getIdentifierInfo(); + return specId ? specId->getObjCKeywordID() : tok::objc_not_keyword; +} + +//===----------------------------------------------------------------------===// +// Lexer Class Implementation +//===----------------------------------------------------------------------===// + + Lexer::Lexer(SourceLocation fileloc, Preprocessor &pp, const char *BufStart, const char *BufEnd) : FileLoc(fileloc), PP(pp), Features(PP.getLangOptions()) { @@ -141,26 +162,26 @@ static void InitCharacterInfo() { /// isIdentifierBody - Return true if this is the body character of an /// identifier, which is [a-zA-Z0-9_]. static inline bool isIdentifierBody(unsigned char c) { - return (CharInfo[c] & (CHAR_LETTER|CHAR_NUMBER|CHAR_UNDER)) ? true : false; + return CharInfo[c] & (CHAR_LETTER|CHAR_NUMBER|CHAR_UNDER); } /// isHorizontalWhitespace - Return true if this character is horizontal /// whitespace: ' ', '\t', '\f', '\v'. Note that this returns false for '\0'. static inline bool isHorizontalWhitespace(unsigned char c) { - return (CharInfo[c] & CHAR_HORZ_WS) ? true : false; + return CharInfo[c] & CHAR_HORZ_WS; } /// isWhitespace - Return true if this character is horizontal or vertical /// whitespace: ' ', '\t', '\f', '\v', '\n', '\r'. Note that this returns false /// for '\0'. static inline bool isWhitespace(unsigned char c) { - return (CharInfo[c] & (CHAR_HORZ_WS|CHAR_VERT_WS)) ? true : false; + return CharInfo[c] & (CHAR_HORZ_WS|CHAR_VERT_WS); } /// isNumberBody - Return true if this is the body character of an /// preprocessing number, which is [a-zA-Z0-9_.]. static inline bool isNumberBody(unsigned char c) { - return (CharInfo[c] & (CHAR_LETTER|CHAR_NUMBER|CHAR_UNDER|CHAR_PERIOD)) ? true : false; + return CharInfo[c] & (CHAR_LETTER|CHAR_NUMBER|CHAR_UNDER|CHAR_PERIOD); } |