diff --git a/peglib.h b/peglib.h index 26f78d8..86cab9f 100644 --- a/peglib.h +++ b/peglib.h @@ -1301,8 +1301,8 @@ public: std::string name; size_t id; Action action; - std::function before; - std::function after; + std::function enter; + std::function exit; std::function error_message; bool ignoreSemanticValue; std::shared_ptr whiteSpaceOpe; @@ -1373,8 +1373,8 @@ inline size_t Holder::parse(const char* s, size_t n, SemanticValues& sv, Context auto& chldsv = c.push(); - if (outer_->before) { - outer_->before(dt); + if (outer_->enter) { + outer_->enter(dt); } auto ope = ope_; @@ -1415,8 +1415,8 @@ inline size_t Holder::parse(const char* s, size_t n, SemanticValues& sv, Context } } - if (outer_->after) { - outer_->after(dt); + if (outer_->exit) { + outer_->exit(dt); } c.pop(); diff --git a/test/test.cc b/test/test.cc index 6669662..6186fc2 100644 --- a/test/test.cc +++ b/test/test.cc @@ -213,7 +213,7 @@ TEST_CASE("Lambda action test", "[general]") REQUIRE(ss == "hello"); } -TEST_CASE("before/after handlers test", "[general]") +TEST_CASE("enter/exit handlers test", "[general]") { parser parser(R"( START <- LTOKEN '=' RTOKEN @@ -222,11 +222,11 @@ TEST_CASE("before/after handlers test", "[general]") TOKEN <- [A-Za-z]+ )"); - parser["LTOKEN"].before = [&](any& dt) { + parser["LTOKEN"].enter = [&](any& dt) { auto& require_upper_case = *dt.get(); require_upper_case = false; }; - parser["LTOKEN"].after = [&](any& dt) { + parser["LTOKEN"].exit = [&](any& dt) { auto& require_upper_case = *dt.get(); require_upper_case = true; };