From be891311eb7e92da53ff29fb1760d70936835e3a Mon Sep 17 00:00:00 2001 From: Daniel Frey Date: Mon, 28 Sep 2020 19:19:56 +0200 Subject: [PATCH] Add regression test for #218 --- src/test/pegtl/contrib_parse_tree.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/pegtl/contrib_parse_tree.cpp b/src/test/pegtl/contrib_parse_tree.cpp index bce683450..a209fcbc4 100644 --- a/src/test/pegtl/contrib_parse_tree.cpp +++ b/src/test/pegtl/contrib_parse_tree.cpp @@ -13,6 +13,7 @@ namespace TAO_PEGTL_NAMESPACE struct C : one< 'c' > {}; struct D : sor< seq< A, B >, seq< A, C > > {}; + struct E : star< A, B > {}; struct D2 : sor< try_catch< if_must< A, B > >, seq< A, C > > {}; // clang-format on @@ -50,6 +51,18 @@ namespace TAO_PEGTL_NAMESPACE TAO_PEGTL_TEST_ASSERT( !r2 ); } + { + memory_input in( "aba", "input" ); + const auto r = parse_tree::parse< E, selector >( in ); + TAO_PEGTL_TEST_ASSERT( r ); + TAO_PEGTL_TEST_ASSERT( r->is_root() ); + TAO_PEGTL_TEST_ASSERT( !r->has_content() ); + + TAO_PEGTL_TEST_ASSERT( r->children.size() == 2 ); + TAO_PEGTL_TEST_ASSERT( r->children.front()->is_type< A >() ); + TAO_PEGTL_TEST_ASSERT( r->children.back()->is_type< B >() ); + } + { memory_input in( "ac", "input" ); const auto r = parse_tree::parse< D2, selector >( in );