Commit cfb7606a authored by Denis Gladkikh's avatar Denis Gladkikh Committed by Jesse Beder
Browse files

Fix tag parsing with () (#532)

parent 86ae3a5a
...@@ -135,7 +135,7 @@ inline const RegEx& URI() { ...@@ -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() { ...@@ -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 = '|'; ...@@ -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) { ...@@ -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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment