LLVM  6.0.0svn
Classes | Namespaces | Typedefs | Enumerations | Functions
YAMLParser.cpp File Reference
#include "llvm/Support/YAMLParser.h"
#include "llvm/ADT/AllocatorList.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <map>
#include <memory>
#include <string>
#include <system_error>
#include <utility>
Include dependency graph for YAMLParser.cpp:

Go to the source code of this file.

Classes

struct  llvm::yaml::Token
 Token - A single YAML token. More...
 
class  llvm::yaml::Scanner
 Scans YAML tokens from a MemoryBuffer. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 
 llvm::yaml
 

Typedefs

using EncodingInfo = std::pair< UnicodeEncodingForm, unsigned >
 EncodingInfo - Holds the encoding type and length of the byte order mark if it exists. More...
 
using TokenQueueT = BumpPtrList< Token >
 
using UTF8Decoded = std::pair< uint32_t, unsigned >
 The Unicode scalar value of a UTF-8 minimal well-formed code unit subsequence and the subsequence's length in code units (uint8_t). More...
 

Enumerations

enum  UnicodeEncodingForm {
  UEF_UTF32_LE, UEF_UTF32_BE, UEF_UTF16_LE, UEF_UTF16_BE,
  UEF_UTF8, UEF_Unknown
}
 

Functions

static EncodingInfo getUnicodeEncoding (StringRef Input)
 getUnicodeEncoding - Reads up to the first 4 bytes to determine the Unicode encoding form of Input. More...
 
static UTF8Decoded decodeUTF8 (StringRef Range)
 
static void encodeUTF8 (uint32_t UnicodeScalarValue, SmallVectorImpl< char > &Result)
 encodeUTF8 - Encode UnicodeScalarValue in UTF-8 and append it to result. More...
 
static bool is_ns_hex_digit (const char C)
 
static bool is_ns_word_char (const char C)
 
static LLVM_ATTRIBUTE_NOINLINE bool wasEscaped (StringRef::iterator First, StringRef::iterator Position)
 
static unsigned getChompedLineBreaks (char ChompingIndicator, unsigned LineBreaks, StringRef Str)
 Get the number of line breaks after chomping. More...
 

Typedef Documentation

◆ EncodingInfo

EncodingInfo - Holds the encoding type and length of the byte order mark if it exists.

Length is in {0, 2, 3, 4}.

Definition at line 54 of file YAMLParser.cpp.

◆ TokenQueueT

Definition at line 166 of file YAMLParser.cpp.

◆ UTF8Decoded

using UTF8Decoded = std::pair<uint32_t, unsigned>

The Unicode scalar value of a UTF-8 minimal well-formed code unit subsequence and the subsequence's length in code units (uint8_t).

A length of 0 represents an error.

Definition at line 196 of file YAMLParser.cpp.

Enumeration Type Documentation

◆ UnicodeEncodingForm

Enumerator
UEF_UTF32_LE 

UTF-32 Little Endian.

UEF_UTF32_BE 

UTF-32 Big Endian.

UEF_UTF16_LE 

UTF-16 Little Endian.

UEF_UTF16_BE 

UTF-16 Big Endian.

UEF_UTF8 

UTF-8 or ascii.

UEF_Unknown 

Not a valid Unicode encoding.

Definition at line 43 of file YAMLParser.cpp.

Function Documentation

◆ decodeUTF8()

static UTF8Decoded decodeUTF8 ( StringRef  Range)
static

◆ encodeUTF8()

static void encodeUTF8 ( uint32_t  UnicodeScalarValue,
SmallVectorImpl< char > &  Result 
)
static

encodeUTF8 - Encode UnicodeScalarValue in UTF-8 and append it to result.

Definition at line 565 of file YAMLParser.cpp.

References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by llvm::yaml::escape(), and llvm::yaml::ScalarNode::getValue().

◆ getChompedLineBreaks()

static unsigned getChompedLineBreaks ( char  ChompingIndicator,
unsigned  LineBreaks,
StringRef  Str 
)
static

◆ getUnicodeEncoding()

static EncodingInfo getUnicodeEncoding ( StringRef  Input)
static

getUnicodeEncoding - Reads up to the first 4 bytes to determine the Unicode encoding form of Input.

Parameters
InputA string of length 0 or more.
Returns
An EncodingInfo indicating the Unicode encoding form of the input and how long the byte order mark is if one exists.

Definition at line 62 of file YAMLParser.cpp.

References llvm::StringRef::empty(), llvm::StringRef::size(), UEF_Unknown, UEF_UTF16_BE, UEF_UTF16_LE, UEF_UTF32_BE, UEF_UTF32_LE, and UEF_UTF8.

Referenced by is_ns_word_char().

◆ is_ns_hex_digit()

static bool is_ns_hex_digit ( const char  C)
static

Definition at line 901 of file YAMLParser.cpp.

Referenced by is_ns_word_char().

◆ is_ns_word_char()

static bool is_ns_word_char ( const char  C)
static

◆ wasEscaped()

static bool wasEscaped ( StringRef::iterator  First,
StringRef::iterator  Position 
)
static