1
//===- AsmLexer.h - Lexer for Assembly Files --------------------*- C++ -*-===//
3
// The LLVM Compiler Infrastructure
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
8
//===----------------------------------------------------------------------===//
10
// This class declares the lexer for assembly files.
12
//===----------------------------------------------------------------------===//
17
#include "llvm/ADT/StringRef.h"
18
#include "llvm/MC/MCParser/MCAsmLexer.h"
19
#include "llvm/MC/MCAsmInfo.h"
20
#include "llvm/System/DataTypes.h"
29
/// AsmLexer - Lexer class for assembly files.
30
class AsmLexer : public MCAsmLexer {
34
const MemoryBuffer *CurBuf;
38
void operator=(const AsmLexer&); // DO NOT IMPLEMENT
39
AsmLexer(const AsmLexer&); // DO NOT IMPLEMENT
42
/// LexToken - Read the next token and return its code.
43
virtual AsmToken LexToken();
46
AsmLexer(const MCAsmInfo &MAI);
49
void setBuffer(const MemoryBuffer *buf, const char *ptr = NULL);
53
StringRef LexUntilEndOfStatement();
55
bool isAtStartOfComment(char Char);
57
const MCAsmInfo &getMAI() const { return MAI; }
61
AsmToken ReturnError(const char *Loc, const std::string &Msg);
63
AsmToken LexIdentifier();
65
AsmToken LexLineComment();
70
} // end namespace llvm