mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-09 04:41:16 +00:00
Fix tag parsing with () (#532)
This commit is contained in:

committed by
Jesse Beder

parent
86ae3a5aa7
commit
cfb7606a84
@@ -135,7 +135,7 @@ inline const RegEx& URI() {
|
|||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
inline const RegEx& Tag() {
|
inline const RegEx& Tag() {
|
||||||
static const RegEx e = Word() || RegEx("#;/?:@&=+$_.~*'", REGEX_OR) ||
|
static const RegEx e = Word() || RegEx("#;/?:@&=+$_.~*'()", REGEX_OR) ||
|
||||||
(RegEx('%') + Hex() + Hex());
|
(RegEx('%') + Hex() + Hex());
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
@@ -200,7 +200,7 @@ inline const RegEx& Chomp() {
|
|||||||
|
|
||||||
// and some functions
|
// and some functions
|
||||||
std::string Escape(Stream& in);
|
std::string Escape(Stream& in);
|
||||||
}
|
} // namespace Exp
|
||||||
|
|
||||||
namespace Keys {
|
namespace Keys {
|
||||||
const char Directive = '%';
|
const char Directive = '%';
|
||||||
@@ -216,7 +216,7 @@ const char LiteralScalar = '|';
|
|||||||
const char FoldedScalar = '>';
|
const char FoldedScalar = '>';
|
||||||
const char VerbatimTagStart = '<';
|
const char VerbatimTagStart = '<';
|
||||||
const char VerbatimTagEnd = '>';
|
const char VerbatimTagEnd = '>';
|
||||||
}
|
} // namespace Keys
|
||||||
}
|
} // namespace YAML
|
||||||
|
|
||||||
#endif // EXP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|
#endif // EXP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|
||||||
|
@@ -230,6 +230,12 @@ TEST(NodeTest, LoadTildeAsNull) {
|
|||||||
Node node = Load("~");
|
Node node = Load("~");
|
||||||
ASSERT_TRUE(node.IsNull());
|
ASSERT_TRUE(node.IsNull());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(NodeTest, LoadTagWithParenthesis) {
|
||||||
|
Node node = Load("!Complex(Tag) foo");
|
||||||
|
EXPECT_EQ(node.Tag(), "!Complex(Tag)");
|
||||||
|
EXPECT_EQ(node.as<std::string>(), "foo");
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
} // namespace YAML
|
} // namespace YAML
|
||||||
|
Reference in New Issue
Block a user