LLVM  10.0.0svn
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
llvm::remarks::YAMLRemarkParser Struct Reference

Regular YAML to Remark parser. More...

#include "Remarks/YAMLRemarkParser.h"

Inheritance diagram for llvm::remarks::YAMLRemarkParser:
Inheritance graph
[legend]
Collaboration diagram for llvm::remarks::YAMLRemarkParser:
Collaboration graph
[legend]

Public Member Functions

 YAMLRemarkParser (StringRef Buf)
 
Expected< std::unique_ptr< Remark > > next () override
 If no error occurs, this returns a valid Remark object. More...
 
- Public Member Functions inherited from llvm::remarks::RemarkParser
 RemarkParser (Format ParserFormat)
 
virtual ~RemarkParser ()=default
 

Static Public Member Functions

static bool classof (const RemarkParser *P)
 

Public Attributes

Optional< ParsedStringTableStrTab
 The string table used for parsing strings. More...
 
std::string LastErrorMessage
 Last error message that can come from the YAML parser diagnostics. More...
 
SourceMgr SM
 Source manager for better error messages. More...
 
yaml::Stream Stream
 Stream for yaml parsing. More...
 
yaml::document_iterator YAMLIt
 Iterator in the YAML stream. More...
 
std::unique_ptr< MemoryBufferSeparateBuf
 If we parse remark metadata in separate mode, we need to open a new file and parse that. More...
 
- Public Attributes inherited from llvm::remarks::RemarkParser
Format ParserFormat
 The format of the parser. More...
 
std::string ExternalFilePrependPath
 Path to prepend when opening an external remark file. More...
 

Protected Member Functions

 YAMLRemarkParser (StringRef Buf, Optional< ParsedStringTable > StrTab)
 
Error error ()
 Create a YAMLParseError error from an existing error generated by the YAML parser. More...
 
Error error (StringRef Message, yaml::Node &Node)
 Create a YAMLParseError error referencing a specific node. More...
 
Expected< std::unique_ptr< Remark > > parseRemark (yaml::Document &Remark)
 Parse a YAML remark to a remarks::Remark object. More...
 
Expected< TypeparseType (yaml::MappingNode &Node)
 Parse the type of a remark to an enum type. More...
 
Expected< StringRefparseKey (yaml::KeyValueNode &Node)
 Parse one key to a string. More...
 
virtual Expected< StringRefparseStr (yaml::KeyValueNode &Node)
 Parse one value to a string. More...
 
Expected< unsignedparseUnsigned (yaml::KeyValueNode &Node)
 Parse one value to an unsigned. More...
 
Expected< RemarkLocationparseDebugLoc (yaml::KeyValueNode &Node)
 Parse a debug location. More...
 
Expected< ArgumentparseArg (yaml::Node &Node)
 Parse an argument. More...
 

Detailed Description

Regular YAML to Remark parser.

Definition at line 50 of file YAMLRemarkParser.h.

Constructor & Destructor Documentation

◆ YAMLRemarkParser() [1/2]

YAMLRemarkParser::YAMLRemarkParser ( StringRef  Buf)

Definition at line 170 of file YAMLRemarkParser.cpp.

References llvm::None.

◆ YAMLRemarkParser() [2/2]

YAMLRemarkParser::YAMLRemarkParser ( StringRef  Buf,
Optional< ParsedStringTable StrTab 
)
protected

Member Function Documentation

◆ classof()

static bool llvm::remarks::YAMLRemarkParser::classof ( const RemarkParser P)
inlinestatic

◆ error() [1/2]

Error YAMLRemarkParser::error ( )
protected

Create a YAMLParseError error from an existing error generated by the YAML parser.

If there is no error, this returns Success.

Definition at line 182 of file YAMLRemarkParser.cpp.

References E, LastErrorMessage, and llvm::Error::success().

Referenced by parseRemark().

◆ error() [2/2]

Error YAMLRemarkParser::error ( StringRef  Message,
yaml::Node Node 
)
protected

Create a YAMLParseError error referencing a specific node.

Definition at line 178 of file YAMLRemarkParser.cpp.

◆ next()

Expected< std::unique_ptr< Remark > > YAMLRemarkParser::next ( )
overridevirtual

If no error occurs, this returns a valid Remark object.

If an error of type EndOfFileError occurs, it is safe to recover from it by stopping the parsing. If any other error occurs, it should be propagated to the user. The pointer should never be null.

Implements llvm::remarks::RemarkParser.

Definition at line 414 of file YAMLRemarkParser.cpp.

References llvm::yaml::Stream::end(), parseRemark(), Stream, llvm::Expected< T >::takeError(), and YAMLIt.

◆ parseArg()

Expected< Argument > YAMLRemarkParser::parseArg ( yaml::Node Node)
protected

Parse an argument.

Definition at line 363 of file YAMLRemarkParser.cpp.

Referenced by parseRemark().

◆ parseDebugLoc()

Expected< RemarkLocation > YAMLRemarkParser::parseDebugLoc ( yaml::KeyValueNode Node)
protected

Parse a debug location.

Definition at line 321 of file YAMLRemarkParser.cpp.

Referenced by parseRemark().

◆ parseKey()

Expected< StringRef > YAMLRemarkParser::parseKey ( yaml::KeyValueNode Node)
protected

Parse one key to a string.

Definition at line 287 of file YAMLRemarkParser.cpp.

Referenced by parseRemark().

◆ parseRemark()

Expected< std::unique_ptr< Remark > > YAMLRemarkParser::parseRemark ( yaml::Document Remark)
protected

◆ parseStr()

Expected< StringRef > YAMLRemarkParser::parseStr ( yaml::KeyValueNode Node)
protectedvirtual

Parse one value to a string.

Reimplemented in llvm::remarks::YAMLStrTabRemarkParser.

Definition at line 294 of file YAMLRemarkParser.cpp.

Referenced by parseRemark().

◆ parseType()

Expected< Type > YAMLRemarkParser::parseType ( yaml::MappingNode Node)
protected

Parse the type of a remark to an enum type.

Definition at line 273 of file YAMLRemarkParser.cpp.

Referenced by parseRemark().

◆ parseUnsigned()

Expected< unsigned > YAMLRemarkParser::parseUnsigned ( yaml::KeyValueNode Node)
protected

Parse one value to an unsigned.

Definition at line 309 of file YAMLRemarkParser.cpp.

Referenced by parseRemark().

Member Data Documentation

◆ LastErrorMessage

std::string llvm::remarks::YAMLRemarkParser::LastErrorMessage

Last error message that can come from the YAML parser diagnostics.

We need this for catching errors in the constructor.

Definition at line 55 of file YAMLRemarkParser.h.

Referenced by error(), and YAMLRemarkParser().

◆ SeparateBuf

std::unique_ptr<MemoryBuffer> llvm::remarks::YAMLRemarkParser::SeparateBuf

If we parse remark metadata in separate mode, we need to open a new file and parse that.

Definition at line 64 of file YAMLRemarkParser.h.

◆ SM

SourceMgr llvm::remarks::YAMLRemarkParser::SM

Source manager for better error messages.

Definition at line 57 of file YAMLRemarkParser.h.

Referenced by YAMLRemarkParser().

◆ Stream

yaml::Stream llvm::remarks::YAMLRemarkParser::Stream

Stream for yaml parsing.

Definition at line 59 of file YAMLRemarkParser.h.

Referenced by next(), and YAMLRemarkParser().

◆ StrTab

Optional<ParsedStringTable> llvm::remarks::YAMLRemarkParser::StrTab

The string table used for parsing strings.

Definition at line 52 of file YAMLRemarkParser.h.

Referenced by YAMLRemarkParser().

◆ YAMLIt

yaml::document_iterator llvm::remarks::YAMLRemarkParser::YAMLIt

Iterator in the YAML stream.

Definition at line 61 of file YAMLRemarkParser.h.

Referenced by next(), and YAMLRemarkParser().


The documentation for this struct was generated from the following files: