blob: 39233aedde0590891119533f04773b8ff8442025 [file] [log] [blame]
Daniel Dunbara3af3702009-07-20 18:55:04 +00001//===-- 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 Lattnerc6ef2772010-01-22 01:44:57 +000010#include "llvm/MC/MCParser/MCAsmParser.h"
Daniel Dunbardc4c7da2010-07-12 17:18:45 +000011#include "llvm/ADT/Twine.h"
Chris Lattnerc6ef2772010-01-22 01:44:57 +000012#include "llvm/MC/MCParser/MCAsmLexer.h"
13#include "llvm/MC/MCParser/MCParsedAsmOperand.h"
Chris Lattnerb4307b32010-01-15 19:28:38 +000014#include "llvm/Support/SourceMgr.h"
Daniel Dunbard1e3b442010-07-17 02:26:10 +000015#include "llvm/Target/TargetAsmParser.h"
Daniel Dunbara3af3702009-07-20 18:55:04 +000016using namespace llvm;
17
Daniel Dunbard1e3b442010-07-17 02:26:10 +000018MCAsmParser::MCAsmParser() : TargetParser(0) {
Daniel Dunbara3af3702009-07-20 18:55:04 +000019}
20
21MCAsmParser::~MCAsmParser() {
22}
Chris Lattnerb4307b32010-01-15 19:28:38 +000023
Daniel Dunbard1e3b442010-07-17 02:26:10 +000024void MCAsmParser::setTargetParser(TargetAsmParser &P) {
25 assert(!TargetParser && "Target parser is already initialized!");
26 TargetParser = &P;
27 TargetParser->Initialize(*this);
28}
29
Sean Callanan18b83232010-01-19 21:44:56 +000030const AsmToken &MCAsmParser::getTok() {
31 return getLexer().getTok();
32}
33
Daniel Dunbardc4c7da2010-07-12 17:18:45 +000034bool MCAsmParser::TokError(const char *Msg) {
35 Error(getLexer().getLoc(), Msg);
36 return true;
37}
38
Chris Lattnerb4307b32010-01-15 19:28:38 +000039bool MCAsmParser::ParseExpression(const MCExpr *&Res) {
40 SMLoc L;
Chris Lattner9521c952010-01-15 19:51:05 +000041 return ParseExpression(Res, L);
Chris Lattnerb4307b32010-01-15 19:28:38 +000042}
43
Chris Lattnerb4307b32010-01-15 19:28:38 +000044/// getStartLoc - Get the location of the first token of this operand.
45SMLoc MCParsedAsmOperand::getStartLoc() const { return SMLoc(); }
46SMLoc MCParsedAsmOperand::getEndLoc() const { return SMLoc(); }
47
48