mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-08 20:31:17 +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;
|
||||
}
|
||||
inline const RegEx& Tag() {
|
||||
static const RegEx e = Word() || RegEx("#;/?:@&=+$_.~*'", REGEX_OR) ||
|
||||
static const RegEx e = Word() || RegEx("#;/?:@&=+$_.~*'()", REGEX_OR) ||
|
||||
(RegEx('%') + Hex() + Hex());
|
||||
return e;
|
||||
}
|
||||
@@ -200,7 +200,7 @@ inline const RegEx& Chomp() {
|
||||
|
||||
// and some functions
|
||||
std::string Escape(Stream& in);
|
||||
}
|
||||
} // namespace Exp
|
||||
|
||||
namespace Keys {
|
||||
const char Directive = '%';
|
||||
@@ -216,7 +216,7 @@ const char LiteralScalar = '|';
|
||||
const char FoldedScalar = '>';
|
||||
const char VerbatimTagStart = '<';
|
||||
const char VerbatimTagEnd = '>';
|
||||
}
|
||||
}
|
||||
} // namespace Keys
|
||||
} // namespace YAML
|
||||
|
||||
#endif // EXP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
|
||||
|
@@ -230,6 +230,12 @@ TEST(NodeTest, LoadTildeAsNull) {
|
||||
Node node = Load("~");
|
||||
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 YAML
|
||||
|
Reference in New Issue
Block a user