mirror of
https://github.com/ToruNiina/toml11.git
synced 2025-09-17 00:38:08 +08:00
feat: add syntax for each escape seqs
This commit is contained in:
@@ -226,6 +226,10 @@ sequence offset_datetime(const spec& s);
|
|||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
// String
|
// String
|
||||||
|
|
||||||
|
sequence escaped_x2(const spec& s);
|
||||||
|
sequence escaped_u4(const spec& s);
|
||||||
|
sequence escaped_U8(const spec& s);
|
||||||
|
|
||||||
sequence escaped(const spec& s);
|
sequence escaped(const spec& s);
|
||||||
|
|
||||||
either basic_char(const spec& s);
|
either basic_char(const spec& s);
|
||||||
|
@@ -398,6 +398,19 @@ TOML11_INLINE sequence offset_datetime(const spec& s)
|
|||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
// String
|
// String
|
||||||
|
|
||||||
|
TOML11_INLINE sequence escaped_x2(const spec& s)
|
||||||
|
{
|
||||||
|
return sequence(character('x'), repeat_exact(2, hexdig(s)));
|
||||||
|
}
|
||||||
|
TOML11_INLINE sequence escaped_u4(const spec& s)
|
||||||
|
{
|
||||||
|
return sequence(character('u'), repeat_exact(4, hexdig(s)));
|
||||||
|
}
|
||||||
|
TOML11_INLINE sequence escaped_U8(const spec& s)
|
||||||
|
{
|
||||||
|
return sequence(character('U'), repeat_exact(8, hexdig(s)));
|
||||||
|
}
|
||||||
|
|
||||||
TOML11_INLINE sequence escaped(const spec& s)
|
TOML11_INLINE sequence escaped(const spec& s)
|
||||||
{
|
{
|
||||||
const auto escape_char = [&s] {
|
const auto escape_char = [&s] {
|
||||||
@@ -416,17 +429,17 @@ TOML11_INLINE sequence escaped(const spec& s)
|
|||||||
{
|
{
|
||||||
return either(
|
return either(
|
||||||
escape_char(),
|
escape_char(),
|
||||||
sequence(character('u'), repeat_exact(4, hexdig(s))),
|
escaped_u4(s),
|
||||||
sequence(character('U'), repeat_exact(8, hexdig(s))),
|
escaped_U8(s),
|
||||||
sequence(character('x'), repeat_exact(2, hexdig(s)))
|
escaped_x2(s)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return either(
|
return either(
|
||||||
escape_char(),
|
escape_char(),
|
||||||
sequence(character('u'), repeat_exact(4, hexdig(s))),
|
escaped_u4(s),
|
||||||
sequence(character('U'), repeat_exact(8, hexdig(s)))
|
escaped_U8(s)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user