Merge branch 'enable-indirect'

This commit is contained in:
Sven M. Hallberg 2012-06-01 20:00:51 +02:00
commit 7d818e2570
3 changed files with 5 additions and 4 deletions

View file

@ -21,7 +21,8 @@ PARSERS := \
epsilon \ epsilon \
and \ and \
not \ not \
attr_bool attr_bool \
indirect
OUTPUTS := bitreader.o \ OUTPUTS := bitreader.o \
hammer.o \ hammer.o \

View file

@ -442,7 +442,7 @@ HParser *h_indirect();
* Set the inner parser of an indirect. See comments on indirect for * Set the inner parser of an indirect. See comments on indirect for
* details. * details.
*/ */
void h_bind_indirect(HParser* indirect, HParser* inner); void h_bind_indirect(HParser* indirect, const HParser* inner);
// Some debugging aids // Some debugging aids
/** /**

View file

@ -7,9 +7,9 @@ static const HParserVtable indirect_vt = {
.parse = parse_indirect, .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"); assert_message(indirect->vtable == &indirect_vt, "You can only bind an indirect parser");
indirect->env = inner; indirect->env = (void*)inner;
} }
HParser* h_indirect() { HParser* h_indirect() {