#define LLVM_MC_MCPARSER_MCASMPARSER_H
#include "llvm/ADT/ArrayRef.h"
+#include "llvm/MC/MCParser/AsmLexer.h"
#include "llvm/Support/DataTypes.h"
+#include <vector>
namespace llvm {
-class AsmToken;
class MCAsmInfo;
class MCAsmLexer;
class MCAsmParserExtension;
unsigned &Offset) = 0;
};
+
+typedef std::vector<AsmToken> MCAsmMacroArgument;
+
+
/// MCAsmParser - Generic assembler parser interface, for use by target specific
/// assembly parsers.
class MCAsmParser {
virtual bool MacrosEnabled() = 0;
virtual void SetMacrosEnabled(bool flag) = 0;
+ /// ParseMacroArgument - Extract AsmTokens for a macro argument. If the
+ /// argument delimiter is initially unknown, set it to AsmToken::Eof. It will
+ /// be set to the correct delimiter by the method.
+ virtual bool ParseMacroArgument(MCAsmMacroArgument &MA,
+ AsmToken::TokenKind &ArgumentDelimiter) = 0;
+
/// ParseExpression - Parse an arbitrary expression.
///
/// @param Res - The value of the expression. The result is undefined