LLVM 17.0.0git
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/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/Unicode.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <map>
#include <memory>
#include <string>
#include <system_error>
#include <utility>

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

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::yaml
 

Typedefs

using EncodingInfo = std::pair< UnicodeEncodingForm, unsigned >
 EncodingInfo - Holds the encoding type and length of the byte order mark if it exists.
 
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).
 

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.
 
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.
 
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.
 

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 52 of file YAMLParser.cpp.

◆ TokenQueueT

Definition at line 164 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 194 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 41 of file YAMLParser.cpp.

Function Documentation

◆ decodeUTF8()

static UTF8Decoded decodeUTF8 ( StringRef  Range)
static

Definition at line 196 of file YAMLParser.cpp.

References End.

Referenced by llvm::yaml::escape().

◆ 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 572 of file YAMLParser.cpp.

Referenced by llvm::yaml::escape().

◆ getChompedLineBreaks()

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

Get the number of line breaks after chomping.

Return the number of trailing line breaks to emit, depending on ChompingIndicator.

Definition at line 1573 of file YAMLParser.cpp.

◆ 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 60 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.

◆ is_ns_hex_digit()

static bool is_ns_hex_digit ( const char  C)
static

Definition at line 998 of file YAMLParser.cpp.

References llvm::CallingConv::C.

◆ is_ns_word_char()

static bool is_ns_word_char ( const char  C)
static

Definition at line 1000 of file YAMLParser.cpp.

References llvm::CallingConv::C.

◆ wasEscaped()

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

Definition at line 1358 of file YAMLParser.cpp.

References assert(), and I.