};
/// Parser used to parse a raw buffer to remarks::Remark objects.
-struct Parser {
+struct RemarkParser {
/// The format of the parser.
Format ParserFormat;
- Parser(Format ParserFormat) : ParserFormat(ParserFormat) {}
+ RemarkParser(Format ParserFormat) : ParserFormat(ParserFormat) {}
/// If no error occurs, this returns a valid Remark object.
/// If an error of type EndOfFileError occurs, it is safe to recover from it
/// The pointer should never be null.
virtual Expected<std::unique_ptr<Remark>> next() = 0;
- virtual ~Parser() = default;
+ virtual ~RemarkParser() = default;
};
/// In-memory representation of the string table parsed from a buffer (e.g. the
Expected<StringRef> operator[](size_t Index) const;
};
-Expected<std::unique_ptr<Parser>> createRemarkParser(Format ParserFormat,
- StringRef Buf);
+Expected<std::unique_ptr<RemarkParser>> createRemarkParser(Format ParserFormat,
+ StringRef Buf);
-Expected<std::unique_ptr<Parser>> createRemarkParser(Format ParserFormat,
- StringRef Buf,
- ParsedStringTable StrTab);
+Expected<std::unique_ptr<RemarkParser>>
+createRemarkParser(Format ParserFormat, StringRef Buf,
+ ParsedStringTable StrTab);
} // end namespace remarks
} // end namespace llvm
return StringRef(Buffer.data() + Offset, NextOffset - Offset - 1);
}
-Expected<std::unique_ptr<Parser>>
+Expected<std::unique_ptr<RemarkParser>>
llvm::remarks::createRemarkParser(Format ParserFormat, StringRef Buf) {
switch (ParserFormat) {
case Format::YAML:
llvm_unreachable("unhandled ParseFormat");
}
-Expected<std::unique_ptr<Parser>>
+Expected<std::unique_ptr<RemarkParser>>
llvm::remarks::createRemarkParser(Format ParserFormat, StringRef Buf,
ParsedStringTable StrTab) {
switch (ParserFormat) {
// Wrapper that holds the state needed to interact with the C API.
struct CParser {
- std::unique_ptr<Parser> TheParser;
+ std::unique_ptr<RemarkParser> TheParser;
Optional<std::string> Err;
CParser(Format ParserFormat, StringRef Buf,
extern "C" LLVMRemarkEntryRef
LLVMRemarkParserGetNext(LLVMRemarkParserRef Parser) {
CParser &TheCParser = *unwrap(Parser);
- remarks::Parser &TheParser = *TheCParser.TheParser;
+ remarks::RemarkParser &TheParser = *TheCParser.TheParser;
Expected<std::unique_ptr<Remark>> MaybeRemark = TheParser.next();
if (Error E = MaybeRemark.takeError()) {
YAMLRemarkParser::YAMLRemarkParser(StringRef Buf,
Optional<ParsedStringTable> StrTab)
- : Parser{Format::YAML}, StrTab(std::move(StrTab)), LastErrorMessage(),
+ : RemarkParser{Format::YAML}, StrTab(std::move(StrTab)), LastErrorMessage(),
SM(setupSM(LastErrorMessage)), Stream(Buf, SM), YAMLIt(Stream.begin()) {}
Error YAMLRemarkParser::error(StringRef Message, yaml::Node &Node) {
};
/// Regular YAML to Remark parser.
-struct YAMLRemarkParser : public Parser {
+struct YAMLRemarkParser : public RemarkParser {
/// The string table used for parsing strings.
Optional<ParsedStringTable> StrTab;
/// Last error message that can come from the YAML parser diagnostics.
Expected<std::unique_ptr<Remark>> next() override;
- static bool classof(const Parser *P) {
+ static bool classof(const RemarkParser *P) {
return P->ParserFormat == Format::YAML;
}
YAMLStrTabRemarkParser(StringRef Buf, ParsedStringTable StrTab)
: YAMLRemarkParser(Buf, std::move(StrTab)) {}
- static bool classof(const Parser *P) {
+ static bool classof(const RemarkParser *P) {
return P->ParserFormat == Format::YAMLStrTab;
}
return false;
}
- Expected<std::unique_ptr<remarks::Parser>> MaybeParser =
+ Expected<std::unique_ptr<remarks::RemarkParser>> MaybeParser =
remarks::createRemarkParser(*Format, (*Buf)->getBuffer());
if (!MaybeParser) {
handleAllErrors(MaybeParser.takeError(), [&](const ErrorInfoBase &PE) {
});
return false;
}
- remarks::Parser &Parser = **MaybeParser;
+ remarks::RemarkParser &Parser = **MaybeParser;
while (true) {
Expected<std::unique_ptr<remarks::Remark>> MaybeRemark = Parser.next();
using namespace llvm;
template <size_t N> void parseGood(const char (&Buf)[N]) {
- Expected<std::unique_ptr<remarks::Parser>> MaybeParser =
+ Expected<std::unique_ptr<remarks::RemarkParser>> MaybeParser =
remarks::createRemarkParser(remarks::Format::YAML, {Buf, N - 1});
EXPECT_FALSE(errorToBool(MaybeParser.takeError()));
EXPECT_TRUE(*MaybeParser != nullptr);
- remarks::Parser &Parser = **MaybeParser;
+ remarks::RemarkParser &Parser = **MaybeParser;
Expected<std::unique_ptr<remarks::Remark>> Remark = Parser.next();
EXPECT_FALSE(errorToBool(Remark.takeError())); // Check for parsing errors.
EXPECT_TRUE(*Remark != nullptr); // At least one remark.
template <size_t N>
bool parseExpectError(const char (&Buf)[N], const char *Error) {
- Expected<std::unique_ptr<remarks::Parser>> MaybeParser =
+ Expected<std::unique_ptr<remarks::RemarkParser>> MaybeParser =
remarks::createRemarkParser(remarks::Format::YAML, {Buf, N - 1});
EXPECT_FALSE(errorToBool(MaybeParser.takeError()));
EXPECT_TRUE(*MaybeParser != nullptr);
- remarks::Parser &Parser = **MaybeParser;
+ remarks::RemarkParser &Parser = **MaybeParser;
Expected<std::unique_ptr<remarks::Remark>> Remark = Parser.next();
EXPECT_FALSE(Remark); // Check for parsing errors.
" - String: ' because its definition is unavailable'\n"
"\n";
- Expected<std::unique_ptr<remarks::Parser>> MaybeParser =
+ Expected<std::unique_ptr<remarks::RemarkParser>> MaybeParser =
remarks::createRemarkParser(remarks::Format::YAML, Buf);
EXPECT_FALSE(errorToBool(MaybeParser.takeError()));
EXPECT_TRUE(*MaybeParser != nullptr);
- remarks::Parser &Parser = **MaybeParser;
+ remarks::RemarkParser &Parser = **MaybeParser;
Expected<std::unique_ptr<remarks::Remark>> MaybeRemark = Parser.next();
EXPECT_FALSE(
errorToBool(MaybeRemark.takeError())); // Check for parsing errors.
115);
remarks::ParsedStringTable StrTab(StrTabBuf);
- Expected<std::unique_ptr<remarks::Parser>> MaybeParser =
+ Expected<std::unique_ptr<remarks::RemarkParser>> MaybeParser =
remarks::createRemarkParser(remarks::Format::YAMLStrTab, Buf,
std::move(StrTab));
EXPECT_FALSE(errorToBool(MaybeParser.takeError()));
EXPECT_TRUE(*MaybeParser != nullptr);
- remarks::Parser &Parser = **MaybeParser;
+ remarks::RemarkParser &Parser = **MaybeParser;
Expected<std::unique_ptr<remarks::Remark>> MaybeRemark = Parser.next();
EXPECT_FALSE(
errorToBool(MaybeRemark.takeError())); // Check for parsing errors.
StringRef StrTabBuf = StringRef("inline");
remarks::ParsedStringTable StrTab(StrTabBuf);
- Expected<std::unique_ptr<remarks::Parser>> MaybeParser =
+ Expected<std::unique_ptr<remarks::RemarkParser>> MaybeParser =
remarks::createRemarkParser(remarks::Format::YAMLStrTab, Buf,
std::move(StrTab));
EXPECT_FALSE(errorToBool(MaybeParser.takeError()));
EXPECT_TRUE(*MaybeParser != nullptr);
- remarks::Parser &Parser = **MaybeParser;
+ remarks::RemarkParser &Parser = **MaybeParser;
Expected<std::unique_ptr<remarks::Remark>> MaybeRemark = Parser.next();
EXPECT_FALSE(MaybeRemark); // Expect an error here.