|
LLVM
3.7.0
|
The Input class is used to parse a yaml document into in-memory structs and vectors. More...
#include <YAMLTraits.h>
Public Member Functions | |
| Input (StringRef InputContent, void *Ctxt=nullptr, SourceMgr::DiagHandlerTy DiagHandler=nullptr, void *DiagHandlerCtxt=nullptr) | |
| ~Input () override | |
| std::error_code | error () |
| bool | setCurrentDocument () |
| bool | nextDocument () |
| const Node * | getCurrentNode () const |
| Returns the current node that's being parsed by the YAML Parser. More... | |
Public Member Functions inherited from llvm::yaml::IO | |
| IO (void *Ctxt=nullptr) | |
| virtual | ~IO () |
| template<typename T > | |
| void | enumCase (T &Val, const char *Str, const T ConstVal) |
| template<typename T > | |
| void | enumCase (T &Val, const char *Str, const uint32_t ConstVal) |
| template<typename FBT , typename T > | |
| void | enumFallback (T &Val) |
| template<typename T > | |
| void | bitSetCase (T &Val, const char *Str, const T ConstVal) |
| template<typename T > | |
| void | bitSetCase (T &Val, const char *Str, const uint32_t ConstVal) |
| template<typename T > | |
| void | maskedBitSetCase (T &Val, const char *Str, T ConstVal, T Mask) |
| template<typename T > | |
| void | maskedBitSetCase (T &Val, const char *Str, uint32_t ConstVal, uint32_t Mask) |
| void * | getContext () |
| void | setContext (void *) |
| template<typename T > | |
| void | mapRequired (const char *Key, T &Val) |
| template<typename T > | |
| std::enable_if < has_SequenceTraits< T > ::value, void >::type | mapOptional (const char *Key, T &Val) |
| template<typename T > | |
| void | mapOptional (const char *Key, Optional< T > &Val) |
| template<typename T > | |
| std::enable_if <!has_SequenceTraits< T > ::value, void >::type | mapOptional (const char *Key, T &Val) |
| template<typename T > | |
| void | mapOptional (const char *Key, T &Val, const T &Default) |
The Input class is used to parse a yaml document into in-memory structs and vectors.
It works by using YAMLParser to do a syntax parse of the entire yaml document, then the Input class builds a graph of HNodes which wraps each yaml Node. The extra layer is buffering. The low level yaml parser only lets you look at each node once. The buffering layer lets you search and interate multiple times. This is necessary because the mapRequired() method calls may not be in the same order as the keys in the document.
Definition at line 970 of file YAMLTraits.h.
| Input::Input | ( | StringRef | InputContent, |
| void * | Ctxt = nullptr, |
||
| SourceMgr::DiagHandlerTy | DiagHandler = nullptr, |
||
| void * | DiagHandlerCtxt = nullptr |
||
| ) |
Definition at line 47 of file YAMLTraits.cpp.
References llvm::SourceMgr::setDiagHandler().
|
override |
Definition at line 59 of file YAMLTraits.cpp.
| std::error_code Input::error | ( | ) |
Definition at line 62 of file YAMLTraits.cpp.
Referenced by llvm::yaml::operator>>(), and llvm::MIRParserImpl::parseMachineFunction().
Returns the current node that's being parsed by the YAML Parser.
Definition at line 100 of file YAMLTraits.cpp.
| bool Input::nextDocument | ( | ) |
Definition at line 96 of file YAMLTraits.cpp.
Referenced by llvm::yaml::operator>>().
| bool Input::setCurrentDocument | ( | ) |
Definition at line 75 of file YAMLTraits.cpp.
References llvm::invalid_argument, llvm::make_error_code(), and N.
Referenced by llvm::yaml::operator>>().
1.8.6