[llvm-commits] [llvm] r81046 - in /llvm/trunk: include/llvm/MC/MCAsmLexer.h tools/llvm-mc/AsmLexer.cpp tools/llvm-mc/AsmLexer.h tools/llvm-mc/AsmParser.h tools/llvm-mc/llvm-mc.cpp
Daniel Dunbar
daniel at zuster.org
Wed Sep 16 00:36:24 PDT 2009
Hi Kevin,
On Fri, Sep 4, 2009 at 2:45 PM, Kevin Enderby <enderby at apple.com> wrote:
> Author: enderby
> Date: Fri Sep 4 16:45:34 2009
> New Revision: 81046
>
> URL: http://llvm.org/viewvc/llvm-project?rev=81046&view=rev
> Log:
> Added the AsmToken::Hash enum constant to MCAsmLexer.h in preparation of
> supporting other targets. Changed the code to pass MCAsmInfo to the parser
> and the lexer. Then changed the lexer to use CommentString from MCAsmInfo
> instead of a literal '#' character.
>
> - while (*CurPtr != '#' && // Start of line comment.
> - *CurPtr != ';' && // End of statement marker.
> + while (*CurPtr != ';' && // End of statement marker.
> *CurPtr != '\n' &&
> *CurPtr != '\r' &&
> - (*CurPtr != 0 || CurPtr != CurBuf->getBufferEnd()))
> + (*CurPtr != 0 || CurPtr != CurBuf->getBufferEnd())) {
> + // check for start of line comment.
> + for (const char *p = MAI.getCommentString(); *p != 0; ++p)
> + if (*CurPtr == *p)
> + break;
> ++CurPtr;
> + }
I don't think this does the right thing, this will never break out of
the enclosing while loop based on the comment string?
> @@ -244,6 +250,10 @@
> // This always consumes at least one character.
> int CurChar = getNextChar();
>
> + for (const char *p = MAI.getCommentString(); *p != 0; ++p)
> + if (CurChar == *p)
> + return LexLineComment();
Similarly this I think only works for single character comment
strings? It may make sense to have a lexer "isAtStartOfComment"
method, which both of these two places call.
- Daniel
More information about the llvm-commits
mailing list