summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCParser/MCAsmParser.cpp
diff options
context:
space:
mode:
authorNirav Dave <niravd@google.com>2016-08-30 14:15:43 +0000
committerNirav Dave <niravd@google.com>2016-08-30 14:15:43 +0000
commitd8858cafa94410b8d0b4f600466815f86dd6d931 (patch)
tree0b4099983effb894c6957b3cf3585529726da2de /llvm/lib/MC/MCParser/MCAsmParser.cpp
parente36ab4a0a4dbbc3f2be2fb8f7eab6fe039a4dc79 (diff)
downloadbcm5719-llvm-d8858cafa94410b8d0b4f600466815f86dd6d931.tar.gz
bcm5719-llvm-d8858cafa94410b8d0b4f600466815f86dd6d931.zip
[MC] Move parser helper functions from Asmparser to MCAsmParser
NFC Intended. llvm-svn: 280092
Diffstat (limited to 'llvm/lib/MC/MCParser/MCAsmParser.cpp')
-rw-r--r--llvm/lib/MC/MCParser/MCAsmParser.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCParser/MCAsmParser.cpp b/llvm/lib/MC/MCParser/MCAsmParser.cpp
index 3576ed08253..3282a61e515 100644
--- a/llvm/lib/MC/MCParser/MCAsmParser.cpp
+++ b/llvm/lib/MC/MCParser/MCAsmParser.cpp
@@ -33,6 +33,57 @@ const AsmToken &MCAsmParser::getTok() const {
return getLexer().getTok();
}
+bool MCAsmParser::parseTokenLoc(SMLoc &Loc) {
+ Loc = getTok().getLoc();
+ return false;
+}
+
+bool MCAsmParser::parseEOL(const Twine &Msg) {
+ if (getTok().getKind() == AsmToken::Hash) {
+ StringRef CommentStr = parseStringToEndOfStatement();
+ getLexer().Lex();
+ getLexer().UnLex(AsmToken(AsmToken::EndOfStatement, CommentStr));
+ }
+ if (getTok().getKind() != AsmToken::EndOfStatement)
+ return Error(getTok().getLoc(), Msg);
+ Lex();
+ return false;
+}
+
+bool MCAsmParser::parseToken(AsmToken::TokenKind T, const Twine &Msg) {
+ if (T == AsmToken::EndOfStatement)
+ return parseEOL(Msg);
+ if (getTok().getKind() != T)
+ return Error(getTok().getLoc(), Msg);
+ Lex();
+ return false;
+}
+
+bool MCAsmParser::parseIntToken(int64_t &V, const Twine &Msg) {
+ if (getTok().getKind() != AsmToken::Integer)
+ return TokError(Msg);
+ V = getTok().getIntVal();
+ Lex();
+ return false;
+}
+
+bool MCAsmParser::parseOptionalToken(AsmToken::TokenKind T, bool &Present) {
+ Present = (getTok().getKind() == T);
+ if (Present)
+ Lex();
+ return false;
+}
+
+bool MCAsmParser::check(bool P, const Twine &Msg) {
+ return check(P, getTok().getLoc(), Msg);
+}
+
+bool MCAsmParser::check(bool P, SMLoc Loc, const Twine &Msg) {
+ if (P)
+ return Error(Loc, Msg);
+ return false;
+}
+
bool MCAsmParser::TokError(const Twine &Msg, ArrayRef<SMRange> Ranges) {
Error(getLexer().getLoc(), Msg, Ranges);
return true;
OpenPOWER on IntegriCloud