Commit be1b14f3 authored by Jesse Beder's avatar Jesse Beder
Browse files

Added Anchor() regex (so that we're not just using Alphanumeric to match...

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)
parent 337cb553
......@@ -112,6 +112,10 @@ namespace YAML
static const RegEx e = RegEx('#');
return e;
}
inline const RegEx& Anchor() {
static const RegEx e = !(RegEx("[]{},", REGEX_OR) || BlankOrBreak());
return e;
}
inline const RegEx& AnchorEnd() {
static const RegEx e = RegEx("?:,]}%@`", REGEX_OR) || BlankOrBreak();
return e;
......
......@@ -238,7 +238,7 @@ namespace YAML
alias = (indicator == Keys::Alias);
// now eat the content
while(Exp::AlphaNumeric().Matches(INPUT))
while(INPUT && Exp::Anchor().Matches(INPUT))
name += INPUT.get();
// we need to have read SOMETHING!
......
......@@ -472,7 +472,7 @@ namespace Test
bool AliasAsSimpleKey()
{
std::string input = "- &a b\n- *a: c";
std::string input = "- &a b\n- *a : c";
std::stringstream stream(input);
YAML::Parser parser(stream);
......
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