@@ -776,9 +776,11 @@ AsmToken AsmLexer::LexToken() {
776
776
IsAtStartOfStatement = false ;
777
777
switch (CurChar) {
778
778
default :
779
- // Handle identifier: [a-zA-Z_.?][a-zA-Z0-9_$.@#?]*
780
- if (isalpha (CurChar) || CurChar == ' _' || CurChar == ' .' ||
781
- (MAI.doesAllowQuestionAtStartOfIdentifier () && CurChar == ' ?' ))
779
+ // Handle identifier: [a-zA-Z_.$@#?][a-zA-Z0-9_.$@#?]*
780
+ // Whether or not the lexer accepts '$', '@', '#' and '?' at the start of
781
+ // an identifier is target-dependent. These characters are handled in the
782
+ // respective switch cases.
783
+ if (isalpha (CurChar) || CurChar == ' _' || CurChar == ' .' )
782
784
return LexIdentifier ();
783
785
784
786
// Unknown character, emit an error.
@@ -830,11 +832,18 @@ AsmToken AsmLexer::LexToken() {
830
832
return LexIdentifier ();
831
833
return AsmToken (AsmToken::Dollar, StringRef (TokStart, 1 ));
832
834
}
833
- case ' @' : {
835
+ case ' @' :
834
836
if (MAI.doesAllowAtAtStartOfIdentifier ())
835
837
return LexIdentifier ();
836
838
return AsmToken (AsmToken::At, StringRef (TokStart, 1 ));
837
- }
839
+ case ' #' :
840
+ if (MAI.doesAllowHashAtStartOfIdentifier ())
841
+ return LexIdentifier ();
842
+ return AsmToken (AsmToken::Hash, StringRef (TokStart, 1 ));
843
+ case ' ?' :
844
+ if (MAI.doesAllowQuestionAtStartOfIdentifier ())
845
+ return LexIdentifier ();
846
+ return AsmToken (AsmToken::Question, StringRef (TokStart, 1 ));
838
847
case ' \\ ' : return AsmToken (AsmToken::BackSlash, StringRef (TokStart, 1 ));
839
848
case ' =' :
840
849
if (*CurPtr == ' =' ) {
@@ -914,11 +923,6 @@ AsmToken AsmLexer::LexToken() {
914
923
case ' /' :
915
924
IsAtStartOfStatement = OldIsAtStartOfStatement;
916
925
return LexSlash ();
917
- case ' #' : {
918
- if (MAI.doesAllowHashAtStartOfIdentifier ())
919
- return LexIdentifier ();
920
- return AsmToken (AsmToken::Hash, StringRef (TokStart, 1 ));
921
- }
922
926
case ' \' ' : return LexSingleQuote ();
923
927
case ' "' : return LexQuote ();
924
928
case ' 0' : case ' 1' : case ' 2' : case ' 3' : case ' 4' :
0 commit comments