Skip to content

Commit 0124f5c

Browse files
committed
Simplify unescape_c.
1 parent 2781b21 commit 0124f5c

File tree

4 files changed

+7
-11
lines changed

4 files changed

+7
-11
lines changed

include/tao/pegtl/extra/unescape.hpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,17 @@ namespace TAO_PEGTL_NAMESPACE::unescape
3636
}
3737
};
3838

39-
// The unescape_c action MUST be called for a character matching One which MUST
40-
// be, or publicly derive from, TAO_PEGTL_NAMESPACE::ascii::one< ... >.
41-
42-
template< typename One, char... Rs >
39+
template< char... Rs >
4340
struct unescape_c
4441
{
45-
using one_t = typename One::test_t;
46-
4742
static_assert( sizeof...( Rs ) > 0 );
4843

49-
template< typename ActionInput >
44+
template< typename One, typename ActionInput >
5045
static void apply( const ActionInput& in, std::string& s )
5146
{
5247
// assert( in.size() == 1 );
53-
s += apply_one( in.peek_char(), one_t() );
48+
using test_t = typename One::test_t;
49+
s += apply_one( in.peek_char(), test_t() );
5450
}
5551

5652
private:

src/example/json_unescape.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace example
2121
template< typename Rule > struct json_unescape_action {};
2222

2323
template<> struct json_unescape_action< pegtl::json::unicode > : pegtl::unescape::unescape_j {};
24-
template<> struct json_unescape_action< pegtl::json::escaped_char > : pegtl::unescape::unescape_c< pegtl::json::escaped_char, '"', '\\', '/', '\b', '\f', '\n', '\r', '\t' > {};
24+
template<> struct json_unescape_action< pegtl::json::escaped_char > : pegtl::unescape::unescape_c< '"', '\\', '/', '\b', '\f', '\n', '\r', '\t' > {};
2525
template<> struct json_unescape_action< pegtl::json::unescaped > : pegtl::unescape::append_all {};
2626
// clang-format on
2727

src/example/unescape.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ namespace example
4343
template<> struct action< escaped_x > : unescape::unescape_x {};
4444
template<> struct action< escaped_u > : unescape::unescape_u {};
4545
template<> struct action< escaped_U > : unescape::unescape_u {};
46-
template<> struct action< escaped_c > : unescape::unescape_c< escaped_c, '\'', '"', '?', '\\', '\a', '\b', '\f', '\n', '\r', '\t', '\v' > {};
46+
template<> struct action< escaped_c > : unescape::unescape_c< '\'', '"', '?', '\\', '\a', '\b', '\f', '\n', '\r', '\t', '\v' > {};
4747
// clang-format on
4848

4949
} // namespace example

src/test/extra_unescape.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace TAO_PEGTL_NAMESPACE
2121

2222
template< typename Rule > struct unaction {};
2323

24-
template<> struct unaction< escaped_c > : unescape::unescape_c< escaped_c, '"', '\\', '\t' > {};
24+
template<> struct unaction< escaped_c > : unescape::unescape_c< '"', '\\', '\t' > {};
2525
template<> struct unaction< escaped_u > : unescape::unescape_u {};
2626
template<> struct unaction< escaped_U > : unescape::unescape_u {};
2727
template<> struct unaction< escaped_j > : unescape::unescape_j {};

0 commit comments

Comments
 (0)