1a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar//===-- MCAsmParser.cpp - Abstract Asm Parser Interface -------------------===// 2a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar// 3a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar// The LLVM Compiler Infrastructure 4a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar// 5a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar// This file is distributed under the University of Illinois Open Source 6a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar// License. See LICENSE.TXT for details. 7a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar// 8a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar//===----------------------------------------------------------------------===// 9a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar 10c6ef277a0b8f43af22d86aea9d5053749cacfbbbChris Lattner#include "llvm/MC/MCParser/MCAsmParser.h" 11d04a8d4b33ff316ca4cf961e06c9e312eff8e64fChandler Carruth#include "llvm/ADT/Twine.h" 12c6ef277a0b8f43af22d86aea9d5053749cacfbbbChris Lattner#include "llvm/MC/MCParser/MCAsmLexer.h" 13c6ef277a0b8f43af22d86aea9d5053749cacfbbbChris Lattner#include "llvm/MC/MCParser/MCParsedAsmOperand.h" 1494b9550a32d189704a8eae55505edf62662c0534Evan Cheng#include "llvm/MC/MCTargetAsmParser.h" 15d04a8d4b33ff316ca4cf961e06c9e312eff8e64fChandler Carruth#include "llvm/Support/Debug.h" 16b4307b33705ef9e660db640b2f70d6246aa51165Chris Lattner#include "llvm/Support/SourceMgr.h" 17b7f689bab98777236a2bf600f299d232d246bb61Jim Grosbach#include "llvm/Support/raw_ostream.h" 18a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbarusing namespace llvm; 19a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar 20dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen HinesMCAsmParser::MCAsmParser() : TargetParser(nullptr), ShowParsedOperands(0) { 21a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar} 22a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar 23a3af370dc12f6d5100da5d614ab0a62da135569aDaniel DunbarMCAsmParser::~MCAsmParser() { 24a3af370dc12f6d5100da5d614ab0a62da135569aDaniel Dunbar} 25b4307b33705ef9e660db640b2f70d6246aa51165Chris Lattner 2694b9550a32d189704a8eae55505edf62662c0534Evan Chengvoid MCAsmParser::setTargetParser(MCTargetAsmParser &P) { 27d1e3b44d6c0094eda2e2a854d5fdb6a0d7ba327eDaniel Dunbar assert(!TargetParser && "Target parser is already initialized!"); 28d1e3b44d6c0094eda2e2a854d5fdb6a0d7ba327eDaniel Dunbar TargetParser = &P; 29d1e3b44d6c0094eda2e2a854d5fdb6a0d7ba327eDaniel Dunbar TargetParser->Initialize(*this); 30d1e3b44d6c0094eda2e2a854d5fdb6a0d7ba327eDaniel Dunbar} 31d1e3b44d6c0094eda2e2a854d5fdb6a0d7ba327eDaniel Dunbar 3218b8323de70e3461b5d035e3f9e4f6dfaf5e674bSean Callananconst AsmToken &MCAsmParser::getTok() { 3318b8323de70e3461b5d035e3f9e4f6dfaf5e674bSean Callanan return getLexer().getTok(); 3418b8323de70e3461b5d035e3f9e4f6dfaf5e674bSean Callanan} 3518b8323de70e3461b5d035e3f9e4f6dfaf5e674bSean Callanan 36d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattnerbool MCAsmParser::TokError(const Twine &Msg, ArrayRef<SMRange> Ranges) { 37d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattner Error(getLexer().getLoc(), Msg, Ranges); 38dc4c7da5d4c73bef2ce73ce0f96019457337c402Daniel Dunbar return true; 39dc4c7da5d4c73bef2ce73ce0f96019457337c402Daniel Dunbar} 40dc4c7da5d4c73bef2ce73ce0f96019457337c402Daniel Dunbar 41cb2ae3d98e3bb36e5813f8f69b00d39efd026dcdJim Grosbachbool MCAsmParser::parseExpression(const MCExpr *&Res) { 42b4307b33705ef9e660db640b2f70d6246aa51165Chris Lattner SMLoc L; 43cb2ae3d98e3bb36e5813f8f69b00d39efd026dcdJim Grosbach return parseExpression(Res, L); 44b4307b33705ef9e660db640b2f70d6246aa51165Chris Lattner} 45b4307b33705ef9e660db640b2f70d6246aa51165Chris Lattner 46b7f689bab98777236a2bf600f299d232d246bb61Jim Grosbachvoid MCParsedAsmOperand::dump() const { 47286c4dc355b8be6806081b23c3097485821c7642Manman Ren#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) 48b7f689bab98777236a2bf600f299d232d246bb61Jim Grosbach dbgs() << " " << *this; 49cc77eece74c8db09acc2af425e7e6c88a5bb30d1Manman Ren#endif 50b7f689bab98777236a2bf600f299d232d246bb61Jim Grosbach} 51