From 4f6989d3efadd50fb0c2728eeea57cfa9166e5a0 Mon Sep 17 00:00:00 2001 From: "Sven M. Hallberg" <pesco@khjk.org> Date: Fri, 1 Jun 2012 20:00:10 +0200 Subject: [PATCH] enable h_indirect --- src/Makefile | 3 ++- src/hammer.h | 2 +- src/parsers/indirect.c | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Makefile b/src/Makefile index 9c691242..cc08eee8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -21,7 +21,8 @@ PARSERS := \ epsilon \ and \ not \ - attr_bool + attr_bool \ + indirect OUTPUTS := bitreader.o \ hammer.o \ diff --git a/src/hammer.h b/src/hammer.h index 62b56766..37ab9956 100644 --- a/src/hammer.h +++ b/src/hammer.h @@ -435,7 +435,7 @@ HParser *h_indirect(); * Set the inner parser of an indirect. See comments on indirect for * details. */ -void h_bind_indirect(HParser* indirect, HParser* inner); +void h_bind_indirect(HParser* indirect, const HParser* inner); // Some debugging aids /** diff --git a/src/parsers/indirect.c b/src/parsers/indirect.c index 43657c3b..758116de 100644 --- a/src/parsers/indirect.c +++ b/src/parsers/indirect.c @@ -7,9 +7,9 @@ static const HParserVtable indirect_vt = { .parse = parse_indirect, }; -void h_bind_indirect(HParser* indirect, HParser* inner) { +void h_bind_indirect(HParser* indirect, const HParser* inner) { assert_message(indirect->vtable == &indirect_vt, "You can only bind an indirect parser"); - indirect->env = inner; + indirect->env = (void*)inner; } HParser* h_indirect() { -- GitLab