[CSKY] Use parseOptionalToken. NFC
authorFangrui Song <i@maskray.me>
Thu, 15 Jun 2023 19:31:14 +0000 (12:31 -0700)
committerFangrui Song <i@maskray.me>
Thu, 15 Jun 2023 19:31:14 +0000 (12:31 -0700)
Many code paths are untested.
Some "expected ..." messages are adjusted, otherwise NFC.

llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp

index 2b1e2e7..413c331 100644 (file)
@@ -1254,11 +1254,8 @@ OperandMatchResultTy CSKYAsmParser::parseDataSymbol(OperandVector &Operands) {
   SMLoc E = SMLoc::getFromPointer(S.getPointer() - 1);
   const MCExpr *Res;
 
-  if (getLexer().getKind() != AsmToken::LBrac)
+  if (!parseOptionalToken(AsmToken::LBrac))
     return MatchOperand_NoMatch;
-
-  getLexer().Lex(); // Eat '['.
-
   if (getLexer().getKind() != AsmToken::Identifier) {
     const MCExpr *Expr;
     if (getParser().parseExpression(Expr)) {
@@ -1266,12 +1263,8 @@ OperandMatchResultTy CSKYAsmParser::parseDataSymbol(OperandVector &Operands) {
       return MatchOperand_ParseFail;
     }
 
-    if (getLexer().getKind() != AsmToken::RBrac) {
-      Error(getLoc(), "expected ]");
+    if (parseToken(AsmToken::RBrac, "expected ']'"))
       return MatchOperand_ParseFail;
-    }
-
-    getLexer().Lex(); // Eat ']'.
 
     Operands.push_back(CSKYOperand::createConstpoolOp(Expr, S, E));
     return MatchOperand_Success;
@@ -1337,13 +1330,8 @@ OperandMatchResultTy CSKYAsmParser::parseDataSymbol(OperandVector &Operands) {
     Error(getLoc(), "unknown expression");
     return MatchOperand_ParseFail;
   }
-
-  if (getLexer().getKind() != AsmToken::RBrac) {
-    Error(getLoc(), "expected ']'");
+  if (parseToken(AsmToken::RBrac, "expected ']'"))
     return MatchOperand_ParseFail;
-  }
-
-  getLexer().Lex(); // Eat ']'.
 
   Res = MCBinaryExpr::create(Opcode, Res, Expr, getContext());
   Operands.push_back(CSKYOperand::createConstpoolOp(Res, S, E));
@@ -1356,24 +1344,17 @@ CSKYAsmParser::parseConstpoolSymbol(OperandVector &Operands) {
   SMLoc E = SMLoc::getFromPointer(S.getPointer() - 1);
   const MCExpr *Res;
 
-  if (getLexer().getKind() != AsmToken::LBrac)
+  if (!parseOptionalToken(AsmToken::LBrac))
     return MatchOperand_NoMatch;
 
-  getLexer().Lex(); // Eat '['.
-
   if (getLexer().getKind() != AsmToken::Identifier) {
     const MCExpr *Expr;
     if (getParser().parseExpression(Expr)) {
       Error(getLoc(), "unknown expression");
       return MatchOperand_ParseFail;
     }
-
-    if (getLexer().getKind() != AsmToken::RBrac) {
-      Error(getLoc(), "expected ']'");
+    if (parseToken(AsmToken::RBrac))
       return MatchOperand_ParseFail;
-    }
-
-    getLexer().Lex(); // Eat ']'.
 
     Operands.push_back(CSKYOperand::createConstpoolOp(Expr, S, E));
     return MatchOperand_Success;
@@ -1430,13 +1411,8 @@ CSKYAsmParser::parseConstpoolSymbol(OperandVector &Operands) {
     Error(getLoc(), "unknown expression");
     return MatchOperand_ParseFail;
   }
-
-  if (getLexer().getKind() != AsmToken::RBrac) {
-    Error(getLoc(), "expected ']'");
+  if (parseToken(AsmToken::RBrac, "expected ']'"))
     return MatchOperand_ParseFail;
-  }
-
-  getLexer().Lex(); // Eat ']'.
 
   Res = MCBinaryExpr::create(Opcode, Res, Expr, getContext());
   Operands.push_back(CSKYOperand::createConstpoolOp(Res, S, E));
@@ -1474,12 +1450,8 @@ OperandMatchResultTy CSKYAsmParser::parsePSRFlag(OperandVector &Operands) {
     if (getLexer().is(AsmToken::EndOfStatement))
       break;
 
-    if (getLexer().is(AsmToken::Comma)) {
-      getLexer().Lex(); // eat ','
-    } else {
-      Error(getLoc(), "expected ,");
+    if (parseToken(AsmToken::Comma, "expected ','"))
       return MatchOperand_ParseFail;
-    }
   }
 
   Operands.push_back(
@@ -1496,13 +1468,8 @@ OperandMatchResultTy CSKYAsmParser::parseRegSeq(OperandVector &Operands) {
   auto Ry = Operands.back()->getReg();
   Operands.pop_back();
 
-  if (getLexer().isNot(AsmToken::Minus)) {
-    Error(getLoc(), "expected '-'");
+  if (parseToken(AsmToken::Minus, "expected '-'"))
     return MatchOperand_ParseFail;
-  }
-
-  getLexer().Lex(); // eat '-'
-
   if (parseRegister(Operands) != MatchOperand_Success) {
     Error(getLoc(), "invalid register");
     return MatchOperand_ParseFail;
@@ -1530,9 +1497,7 @@ OperandMatchResultTy CSKYAsmParser::parseRegList(OperandVector &Operands) {
     auto Ry = Operands.back()->getReg();
     Operands.pop_back();
 
-    if (getLexer().is(AsmToken::Minus)) {
-      getLexer().Lex(); // eat '-'
-
+    if (parseOptionalToken(AsmToken::Minus)) {
       if (parseRegister(Operands) != MatchOperand_Success) {
         Error(getLoc(), "invalid register");
         return MatchOperand_ParseFail;
@@ -1544,16 +1509,12 @@ OperandMatchResultTy CSKYAsmParser::parseRegList(OperandVector &Operands) {
       reglist.push_back(Ry);
       reglist.push_back(Rz);
 
-      if (getLexer().is(AsmToken::Comma))
-        getLexer().Lex(); // eat ','
-      else if (getLexer().is(AsmToken::EndOfStatement))
+      if (getLexer().is(AsmToken::EndOfStatement))
         break;
-
-    } else if (getLexer().is(AsmToken::Comma)) {
+      (void)parseOptionalToken(AsmToken::Comma);
+    } else if (parseOptionalToken(AsmToken::Comma)) {
       reglist.push_back(Ry);
       reglist.push_back(Ry);
-
-      getLexer().Lex(); // eat ','
     } else if (getLexer().is(AsmToken::EndOfStatement)) {
       reglist.push_back(Ry);
       reglist.push_back(Ry);
@@ -1582,14 +1543,9 @@ bool CSKYAsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
     return true;
 
   // Parse until end of statement, consuming commas between operands.
-  while (getLexer().is(AsmToken::Comma)) {
-    // Consume comma token.
-    getLexer().Lex();
-
-    // Parse next operand.
+  while (parseOptionalToken(AsmToken::Comma))
     if (parseOperand(Operands, Name))
       return true;
-  }
 
   if (getLexer().isNot(AsmToken::EndOfStatement)) {
     SMLoc Loc = getLexer().getLoc();