aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/llvm/lib/Support/YAMLParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Support/YAMLParser.cpp')
-rw-r--r--contrib/llvm-project/llvm/lib/Support/YAMLParser.cpp64
1 files changed, 18 insertions, 46 deletions
diff --git a/contrib/llvm-project/llvm/lib/Support/YAMLParser.cpp b/contrib/llvm-project/llvm/lib/Support/YAMLParser.cpp
index d17e7b227f4a..9b2fe9c4418a 100644
--- a/contrib/llvm-project/llvm/lib/Support/YAMLParser.cpp
+++ b/contrib/llvm-project/llvm/lib/Support/YAMLParser.cpp
@@ -178,10 +178,10 @@ namespace {
/// others) before the SimpleKey's Tok.
struct SimpleKey {
TokenQueueT::iterator Tok;
- unsigned Column = 0;
- unsigned Line = 0;
- unsigned FlowLevel = 0;
- bool IsRequired = false;
+ unsigned Column;
+ unsigned Line;
+ unsigned FlowLevel;
+ bool IsRequired;
bool operator ==(const SimpleKey &Other) {
return Tok == Other.Tok;
@@ -789,7 +789,6 @@ Token &Scanner::peekNext() {
if (TokenQueue.empty() || NeedMore) {
if (!fetchMoreTokens()) {
TokenQueue.clear();
- SimpleKeys.clear();
TokenQueue.push_back(Token());
return TokenQueue.front();
}
@@ -933,16 +932,12 @@ void Scanner::scan_ns_uri_char() {
}
bool Scanner::consume(uint32_t Expected) {
- if (Expected >= 0x80) {
- setError("Cannot consume non-ascii characters");
- return false;
- }
+ if (Expected >= 0x80)
+ report_fatal_error("Not dealing with this yet");
if (Current == End)
return false;
- if (uint8_t(*Current) >= 0x80) {
- setError("Cannot consume non-ascii characters");
- return false;
- }
+ if (uint8_t(*Current) >= 0x80)
+ report_fatal_error("Not dealing with this yet");
if (uint8_t(*Current) == Expected) {
++Current;
++Column;
@@ -1232,10 +1227,7 @@ bool Scanner::scanValue() {
if (i == SK.Tok)
break;
}
- if (i == e) {
- Failed = true;
- return false;
- }
+ assert(i != e && "SimpleKey not in token queue!");
i = TokenQueue.insert(i, T);
// We may also need to add a Block-Mapping-Start token.
@@ -1780,11 +1772,10 @@ Stream::~Stream() = default;
bool Stream::failed() { return scanner->failed(); }
void Stream::printError(Node *N, const Twine &Msg) {
- SMRange Range = N ? N->getSourceRange() : SMRange();
- scanner->printError( Range.Start
+ scanner->printError( N->getSourceRange().Start
, SourceMgr::DK_Error
, Msg
- , Range);
+ , N->getSourceRange());
}
document_iterator Stream::begin() {
@@ -1943,18 +1934,15 @@ StringRef ScalarNode::unescapeDoubleQuoted( StringRef UnquotedValue
UnquotedValue = UnquotedValue.substr(1);
break;
default:
- if (UnquotedValue.size() == 1) {
- Token T;
- T.Range = StringRef(UnquotedValue.begin(), 1);
- setError("Unrecognized escape code", T);
- return "";
- }
+ if (UnquotedValue.size() == 1)
+ // TODO: Report error.
+ break;
UnquotedValue = UnquotedValue.substr(1);
switch (UnquotedValue[0]) {
default: {
Token T;
T.Range = StringRef(UnquotedValue.begin(), 1);
- setError("Unrecognized escape code", T);
+ setError("Unrecognized escape code!", T);
return "";
}
case '\r':
@@ -2090,14 +2078,7 @@ Node *KeyValueNode::getKey() {
Node *KeyValueNode::getValue() {
if (Value)
return Value;
-
- if (Node* Key = getKey())
- Key->skip();
- else {
- setError("Null key in Key Value.", peekNext());
- return Value = new (getAllocator()) NullNode(Doc);
- }
-
+ getKey()->skip();
if (failed())
return Value = new (getAllocator()) NullNode(Doc);
@@ -2288,8 +2269,8 @@ Document::Document(Stream &S) : stream(S), Root(nullptr) {
bool Document::skip() {
if (stream.scanner->failed())
return false;
- if (!Root && !getRoot())
- return false;
+ if (!Root)
+ getRoot();
Root->skip();
Token &T = peekNext();
if (T.Kind == Token::TK_StreamEnd)
@@ -2413,15 +2394,6 @@ parse_property:
// TODO: Properly handle tags. "[!!str ]" should resolve to !!str "", not
// !!null null.
return new (NodeAllocator) NullNode(stream.CurrentDoc);
- case Token::TK_FlowMappingEnd:
- case Token::TK_FlowSequenceEnd:
- case Token::TK_FlowEntry: {
- if (Root && (isa<MappingNode>(Root) || isa<SequenceNode>(Root)))
- return new (NodeAllocator) NullNode(stream.CurrentDoc);
-
- setError("Unexpected token", T);
- return nullptr;
- }
case Token::TK_Error:
return nullptr;
}