blob: 63c0daba09a043eed5f71a6cb19b1a78dea6a9ec [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
Nirav Dave2364748a2016-09-16 18:30:20 +000015MCAsmLexer::MCAsmLexer()
Oliver Stannard68e7c212016-12-08 10:31:21 +000016 : TokStart(nullptr), SkipSpace(true), IsAtStartOfStatement(true),
17 CommentConsumer(nullptr) {
Nirav Dave1180e6892016-06-02 17:15:05 +000018 CurTok.emplace_back(AsmToken::Space, StringRef());
Daniel Dunbar2b11c7d2009-07-20 20:01:54 +000019}
20
21MCAsmLexer::~MCAsmLexer() {
22}
Daniel Dunbarcbf4faf2009-08-14 02:18:40 +000023
Daniel Dunbar4042c332010-07-12 17:10:00 +000024SMLoc MCAsmLexer::getLoc() const {
25 return SMLoc::getFromPointer(TokStart);
26}
27
Daniel Dunbarcbf4faf2009-08-14 02:18:40 +000028SMLoc AsmToken::getLoc() const {
29 return SMLoc::getFromPointer(Str.data());
30}
Benjamin Kramer1930b002011-10-16 12:10:27 +000031
32SMLoc AsmToken::getEndLoc() const {
Jordan Rosee8f1eae2013-01-07 19:00:49 +000033 return SMLoc::getFromPointer(Str.data() + Str.size());
Benjamin Kramer1930b002011-10-16 12:10:27 +000034}
Daniel Sandersef638fe2014-10-03 15:37:37 +000035
36SMRange AsmToken::getLocRange() const {
37 return SMRange(getLoc(), getEndLoc());
38}