mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-09 12:41:17 +00:00
Added Anchor() regex (so that we're not just using Alphanumeric to match anchors), but it's still not 100% right (it shouldn't allow non-printable characters, e.g.). Also fixed a test that was broken along these lines (if a colon immediately follows an anchor, it's part of the anchor)
This commit is contained in:
@@ -112,6 +112,10 @@ namespace YAML
|
|||||||
static const RegEx e = RegEx('#');
|
static const RegEx e = RegEx('#');
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
inline const RegEx& Anchor() {
|
||||||
|
static const RegEx e = !(RegEx("[]{},", REGEX_OR) || BlankOrBreak());
|
||||||
|
return e;
|
||||||
|
}
|
||||||
inline const RegEx& AnchorEnd() {
|
inline const RegEx& AnchorEnd() {
|
||||||
static const RegEx e = RegEx("?:,]}%@`", REGEX_OR) || BlankOrBreak();
|
static const RegEx e = RegEx("?:,]}%@`", REGEX_OR) || BlankOrBreak();
|
||||||
return e;
|
return e;
|
||||||
|
@@ -238,7 +238,7 @@ namespace YAML
|
|||||||
alias = (indicator == Keys::Alias);
|
alias = (indicator == Keys::Alias);
|
||||||
|
|
||||||
// now eat the content
|
// now eat the content
|
||||||
while(Exp::AlphaNumeric().Matches(INPUT))
|
while(INPUT && Exp::Anchor().Matches(INPUT))
|
||||||
name += INPUT.get();
|
name += INPUT.get();
|
||||||
|
|
||||||
// we need to have read SOMETHING!
|
// we need to have read SOMETHING!
|
||||||
|
@@ -472,7 +472,7 @@ namespace Test
|
|||||||
|
|
||||||
bool AliasAsSimpleKey()
|
bool AliasAsSimpleKey()
|
||||||
{
|
{
|
||||||
std::string input = "- &a b\n- *a: c";
|
std::string input = "- &a b\n- *a : c";
|
||||||
|
|
||||||
std::stringstream stream(input);
|
std::stringstream stream(input);
|
||||||
YAML::Parser parser(stream);
|
YAML::Parser parser(stream);
|
||||||
|
Reference in New Issue
Block a user