From 1ac16f31848a2b290e9d45302aee9c88f76b001b Mon Sep 17 00:00:00 2001 From: yhirose Date: Sun, 29 Nov 2015 13:07:06 -0500 Subject: [PATCH] Fixed incorrect semantic values with NotPredicate. --- peglib.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/peglib.h b/peglib.h index 8d41773..117a097 100644 --- a/peglib.h +++ b/peglib.h @@ -747,7 +747,9 @@ public: size_t parse(const char* s, size_t n, SemanticValues& sv, Context& c, any& dt) const override { auto save_error_pos = c.error_pos; const auto& rule = *ope_; - auto len = rule.parse(s, n, sv, c, dt); + auto& chldsv = c.push(); + auto len = rule.parse(s, n, chldsv, c, dt); + c.pop(); if (success(len)) { c.set_error_pos(s); return -1;