diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2011-02-09 21:08:21 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2011-02-09 21:08:21 +0000 |
| commit | c1270f51fabaf0d6b93e54269739b969ab81ee65 (patch) | |
| tree | cc2c659be0149d6a5a458d3c33c16d86dcbd7861 | |
| parent | 41f85462336ce32fad0bfd14a1c061dbe15a107b (diff) | |
| download | bcm5719-llvm-c1270f51fabaf0d6b93e54269739b969ab81ee65.tar.gz bcm5719-llvm-c1270f51fabaf0d6b93e54269739b969ab81ee65.zip | |
Lexer: add CUDA kernel call tokens
llvm-svn: 125218
| -rw-r--r-- | clang/include/clang/Basic/TokenKinds.def | 4 | ||||
| -rw-r--r-- | clang/lib/Lex/Lexer.cpp | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/TokenKinds.def b/clang/include/clang/Basic/TokenKinds.def index 5c21cd6ccde..cf917a95cea 100644 --- a/clang/include/clang/Basic/TokenKinds.def +++ b/clang/include/clang/Basic/TokenKinds.def @@ -176,6 +176,10 @@ PUNCTUATOR(coloncolon, "::") // Objective C support. PUNCTUATOR(at, "@") +// CUDA support. +PUNCTUATOR(lesslessless, "<<<") +PUNCTUATOR(greatergreatergreater, ">>>") + // C99 6.4.1: Keywords. These turn into kw_* tokens. // Flags allowed: // KEYALL - This is a keyword in all variants of C and C++, or it diff --git a/clang/lib/Lex/Lexer.cpp b/clang/lib/Lex/Lexer.cpp index 7c94528c64d..fd5bb617a08 100644 --- a/clang/lib/Lex/Lexer.cpp +++ b/clang/lib/Lex/Lexer.cpp @@ -2323,6 +2323,10 @@ LexNextToken: // If this is actually a '<<<<<<<' version control conflict marker, // recognize it as such and recover nicely. goto LexNextToken; + } else if (Features.CUDA && After == '<') { + Kind = tok::lesslessless; + CurPtr = ConsumeChar(ConsumeChar(CurPtr, SizeTmp, Result), + SizeTmp2, Result); } else { CurPtr = ConsumeChar(CurPtr, SizeTmp, Result); Kind = tok::lessless; @@ -2354,6 +2358,10 @@ LexNextToken: } else if (After == '>' && HandleEndOfConflictMarker(CurPtr-1)) { // If this is '>>>>>>>' and we're in a conflict marker, ignore it. goto LexNextToken; + } else if (Features.CUDA && After == '>') { + Kind = tok::greatergreatergreater; + CurPtr = ConsumeChar(ConsumeChar(CurPtr, SizeTmp, Result), + SizeTmp2, Result); } else { CurPtr = ConsumeChar(CurPtr, SizeTmp, Result); Kind = tok::greatergreater; |

