LLVM: include/llvm/MC/MCParser/MCAsmParserExtension.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_MC_MCPARSER_MCASMPARSEREXTENSION_H
10#define LLVM_MC_MCPARSER_MCASMPARSEREXTENSION_H
11
17
18namespace llvm {
19
21
22
23
24
27
28protected:
30
31
32 template<typename T, bool (T::*Handler)(StringRef, SMLoc)>
35 SMLoc DirectiveLoc) {
36 T *Obj = static_cast<T*>(Target);
37 return (Obj->*Handler)(Directive, DirectiveLoc);
38 }
39
41
42public:
46
47
48
49
51
52
53
54
56
61
66
69
73
77
81
85
89 const Twine &Msg = "unexpected token") {
90 return getParser().parseToken(T, Msg);
91 }
93
95 return getParser().parseMany(parseOne, hasComma);
96 }
97
99 return getParser().parseOptionalToken(T);
100 }
101
103
104 bool maybeParseUniqueID(int64_t &UniqueID);
105
109
113
115 return getParser().addErrorSuffix(Suffix);
116 }
117
119
120
121};
122
130
131}
132
133#endif
ConstantRange Range(APInt(BitWidth, Low), APInt(BitWidth, High))
Target independent representation for an assembler token.
SourceMgr & getSourceManager()
Definition MCAsmParserExtension.h:67
const MCAsmParser & getParser() const
Definition MCAsmParserExtension.h:63
bool parseOptionalToken(AsmToken::TokenKind T)
Definition MCAsmParserExtension.h:98
static bool HandleDirective(MCAsmParserExtension *Target, StringRef Directive, SMLoc DirectiveLoc)
Definition MCAsmParserExtension.h:33
bool parseEOL()
Definition MCAsmParserExtension.h:92
virtual ~MCAsmParserExtension()
const AsmToken & Lex()
Definition MCAsmParserExtension.h:86
bool addErrorSuffix(const Twine &Suffix)
Definition MCAsmParserExtension.h:114
const AsmToken & getTok()
Definition MCAsmParserExtension.h:87
MCAsmParserExtension & operator=(const MCAsmParserExtension &)=delete
bool parseMany(function_ref< bool()> parseOne, bool hasComma=true)
Definition MCAsmParserExtension.h:94
bool parseToken(AsmToken::TokenKind T, const Twine &Msg="unexpected token")
Definition MCAsmParserExtension.h:88
MCAsmParserExtension(const MCAsmParserExtension &)=delete
bool Warning(SMLoc L, const Twine &Msg)
Definition MCAsmParserExtension.h:70
virtual void Initialize(MCAsmParser &Parser)
Initialize the extension for parsing using the given Parser.
bool HasBracketExpressions() const
Definition MCAsmParserExtension.h:118
bool TokError(const Twine &Msg)
Definition MCAsmParserExtension.h:82
bool check(bool P, const Twine &Msg)
Definition MCAsmParserExtension.h:106
MCContext & getContext()
Definition MCAsmParserExtension.h:55
void Note(SMLoc L, const Twine &Msg)
Definition MCAsmParserExtension.h:78
AsmLexer & getLexer()
Definition MCAsmParserExtension.h:57
bool Error(SMLoc L, const Twine &Msg, SMRange Range=SMRange())
Definition MCAsmParserExtension.h:74
bool check(bool P, SMLoc Loc, const Twine &Msg)
Definition MCAsmParserExtension.h:110
bool BracketExpressionsSupported
Definition MCAsmParserExtension.h:40
MCStreamer & getStreamer()
Definition MCAsmParserExtension.h:68
MCAsmParser & getParser()
Definition MCAsmParserExtension.h:62
const AsmLexer & getLexer() const
Definition MCAsmParserExtension.h:58
Generic assembler parser interface, for use by target specific assembly parsers.
Context object for machine code objects.
Streaming machine code generation interface.
Represents a location in source code.
Represents a range in source code.
This owns the files read by a parser, handles include stacks, and handles diagnostic wrangling.
StringRef - Represent a constant reference to a string, i.e.
Target - Wrapper for Target specific information.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
An efficient, type-erasing, non-owning reference to a callable.
This is an optimization pass for GlobalISel generic memory operations.
MCAsmParserExtension * createCOFFAsmParser()
MCAsmParserExtension * createXCOFFAsmParser()
MCAsmParserExtension * createGOFFAsmParser()
MCAsmParserExtension * createCOFFMasmParser()
MCAsmParserExtension * createWasmAsmParser()
MCAsmParserExtension * createELFAsmParser()
MCAsmParserExtension * createDarwinAsmParser()