Renamed 'before/after' to 'enter/exit'.

pull/18/head
yhirose 9 years ago
parent bbd7699c81
commit a9cea16325
  1. 12
      peglib.h
  2. 6
      test/test.cc

@ -1301,8 +1301,8 @@ public:
std::string name; std::string name;
size_t id; size_t id;
Action action; Action action;
std::function<void (any& dt)> before; std::function<void (any& dt)> enter;
std::function<void (any& dt)> after; std::function<void (any& dt)> exit;
std::function<std::string ()> error_message; std::function<std::string ()> error_message;
bool ignoreSemanticValue; bool ignoreSemanticValue;
std::shared_ptr<Ope> whiteSpaceOpe; std::shared_ptr<Ope> whiteSpaceOpe;
@ -1373,8 +1373,8 @@ inline size_t Holder::parse(const char* s, size_t n, SemanticValues& sv, Context
auto& chldsv = c.push(); auto& chldsv = c.push();
if (outer_->before) { if (outer_->enter) {
outer_->before(dt); outer_->enter(dt);
} }
auto ope = ope_; auto ope = ope_;
@ -1415,8 +1415,8 @@ inline size_t Holder::parse(const char* s, size_t n, SemanticValues& sv, Context
} }
} }
if (outer_->after) { if (outer_->exit) {
outer_->after(dt); outer_->exit(dt);
} }
c.pop(); c.pop();

@ -213,7 +213,7 @@ TEST_CASE("Lambda action test", "[general]")
REQUIRE(ss == "hello"); REQUIRE(ss == "hello");
} }
TEST_CASE("before/after handlers test", "[general]") TEST_CASE("enter/exit handlers test", "[general]")
{ {
parser parser(R"( parser parser(R"(
START <- LTOKEN '=' RTOKEN START <- LTOKEN '=' RTOKEN
@ -222,11 +222,11 @@ TEST_CASE("before/after handlers test", "[general]")
TOKEN <- [A-Za-z]+ TOKEN <- [A-Za-z]+
)"); )");
parser["LTOKEN"].before = [&](any& dt) { parser["LTOKEN"].enter = [&](any& dt) {
auto& require_upper_case = *dt.get<bool*>(); auto& require_upper_case = *dt.get<bool*>();
require_upper_case = false; require_upper_case = false;
}; };
parser["LTOKEN"].after = [&](any& dt) { parser["LTOKEN"].exit = [&](any& dt) {
auto& require_upper_case = *dt.get<bool*>(); auto& require_upper_case = *dt.get<bool*>();
require_upper_case = true; require_upper_case = true;
}; };

Loading…
Cancel
Save