diff options
author | Nirav Dave <niravd@google.com> | 2016-08-30 14:15:43 +0000 |
---|---|---|
committer | Nirav Dave <niravd@google.com> | 2016-08-30 14:15:43 +0000 |
commit | d8858cafa94410b8d0b4f600466815f86dd6d931 (patch) | |
tree | 0b4099983effb894c6957b3cf3585529726da2de /llvm/lib/MC/MCParser/MCAsmParser.cpp | |
parent | e36ab4a0a4dbbc3f2be2fb8f7eab6fe039a4dc79 (diff) | |
download | bcm5719-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.cpp | 51 |
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; |