blob: d95cd12accbc12e51c865b00094f4e4ecc95a649 [file] [log] [blame]
Daniel Dunbar2b11c7d2009-07-20 20:01:54 +00001//===-- MCAsmLexer.cpp - Abstract Asm Lexer 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 Lattner00646cf2010-01-22 01:44:57 +000010#include "llvm/MC/MCParser/MCAsmLexer.h"
Daniel Dunbarcbf4faf2009-08-14 02:18:40 +000011#include "llvm/Support/SourceMgr.h"
Daniel Dunbar2b11c7d2009-07-20 20:01:54 +000012
13using namespace llvm;
14
Colin LeMahieua4c85d42015-11-08 23:48:23 +000015MCAsmLexer::MCAsmLexer() : TokStart(nullptr), SkipSpace(true) {
Nirav Dave1180e6892016-06-02 17:15:05 +000016 CurTok.emplace_back(AsmToken::Space, StringRef());
Daniel Dunbar2b11c7d2009-07-20 20:01:54 +000017}
18
19MCAsmLexer::~MCAsmLexer() {
20}
Daniel Dunbarcbf4faf2009-08-14 02:18:40 +000021
Daniel Dunbar4042c332010-07-12 17:10:00 +000022SMLoc MCAsmLexer::getLoc() const {
23 return SMLoc::getFromPointer(TokStart);
24}
25
Daniel Dunbarcbf4faf2009-08-14 02:18:40 +000026SMLoc AsmToken::getLoc() const {
27 return SMLoc::getFromPointer(Str.data());
28}
Benjamin Kramer1930b002011-10-16 12:10:27 +000029
30SMLoc AsmToken::getEndLoc() const {
Jordan Rosee8f1eae2013-01-07 19:00:49 +000031 return SMLoc::getFromPointer(Str.data() + Str.size());
Benjamin Kramer1930b002011-10-16 12:10:27 +000032}
Daniel Sandersef638fe2014-10-03 15:37:37 +000033
34SMRange AsmToken::getLocRange() const {
35 return SMRange(getLoc(), getEndLoc());
36}