Daniel Dunbar | a3af370 | 2009-07-20 18:55:04 +0000 | [diff] [blame] | 1 | //===-- MCAsmParser.cpp - Abstract Asm Parser Interface -------------------===// |
| 2 | // |
| 3 | // The LLVM Compiler Infrastructure |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
| 9 | |
Chris Lattner | c6ef277 | 2010-01-22 01:44:57 +0000 | [diff] [blame] | 10 | #include "llvm/MC/MCParser/MCAsmParser.h" |
Daniel Dunbar | dc4c7da | 2010-07-12 17:18:45 +0000 | [diff] [blame] | 11 | #include "llvm/ADT/Twine.h" |
Chris Lattner | c6ef277 | 2010-01-22 01:44:57 +0000 | [diff] [blame] | 12 | #include "llvm/MC/MCParser/MCAsmLexer.h" |
| 13 | #include "llvm/MC/MCParser/MCParsedAsmOperand.h" |
Chris Lattner | b4307b3 | 2010-01-15 19:28:38 +0000 | [diff] [blame] | 14 | #include "llvm/Support/SourceMgr.h" |
Daniel Dunbar | d1e3b44 | 2010-07-17 02:26:10 +0000 | [diff] [blame] | 15 | #include "llvm/Target/TargetAsmParser.h" |
Daniel Dunbar | a3af370 | 2009-07-20 18:55:04 +0000 | [diff] [blame] | 16 | using namespace llvm; |
| 17 | |
Daniel Dunbar | 3c14ca4 | 2010-08-11 06:37:09 +0000 | [diff] [blame] | 18 | MCAsmParser::MCAsmParser() : TargetParser(0), ShowParsedOperands(0) { |
Daniel Dunbar | a3af370 | 2009-07-20 18:55:04 +0000 | [diff] [blame] | 19 | } |
| 20 | |
| 21 | MCAsmParser::~MCAsmParser() { |
| 22 | } |
Chris Lattner | b4307b3 | 2010-01-15 19:28:38 +0000 | [diff] [blame] | 23 | |
Daniel Dunbar | d1e3b44 | 2010-07-17 02:26:10 +0000 | [diff] [blame] | 24 | void MCAsmParser::setTargetParser(TargetAsmParser &P) { |
| 25 | assert(!TargetParser && "Target parser is already initialized!"); |
| 26 | TargetParser = &P; |
| 27 | TargetParser->Initialize(*this); |
| 28 | } |
| 29 | |
Sean Callanan | 18b8323 | 2010-01-19 21:44:56 +0000 | [diff] [blame] | 30 | const AsmToken &MCAsmParser::getTok() { |
| 31 | return getLexer().getTok(); |
| 32 | } |
| 33 | |
Daniel Dunbar | f21e4e9 | 2010-07-18 18:31:42 +0000 | [diff] [blame] | 34 | bool MCAsmParser::TokError(const Twine &Msg) { |
Daniel Dunbar | dc4c7da | 2010-07-12 17:18:45 +0000 | [diff] [blame] | 35 | Error(getLexer().getLoc(), Msg); |
| 36 | return true; |
| 37 | } |
| 38 | |
Chris Lattner | b4307b3 | 2010-01-15 19:28:38 +0000 | [diff] [blame] | 39 | bool MCAsmParser::ParseExpression(const MCExpr *&Res) { |
| 40 | SMLoc L; |
Chris Lattner | 9521c95 | 2010-01-15 19:51:05 +0000 | [diff] [blame] | 41 | return ParseExpression(Res, L); |
Chris Lattner | b4307b3 | 2010-01-15 19:28:38 +0000 | [diff] [blame] | 42 | } |
| 43 | |
Chris Lattner | b4307b3 | 2010-01-15 19:28:38 +0000 | [diff] [blame] | 44 | |