Expanded vtable for methods to determine whether a combinator is ok to use with regular or CF grammars.

This commit is contained in:
Meredith L. Patterson 2012-12-18 18:10:40 -05:00
parent 8163b3981d
commit 36e1f66de0
25 changed files with 200 additions and 4 deletions

View file

@ -3,8 +3,17 @@
static HParseResult* parse_indirect(void* env, HParseState* state) {
return h_do_parse(env, state);
}
static bool indirect_isValidCF(void *env) {
HParser *p = (HParser*)env;
HParser *inner = (HParser*)p->env;
return inner->vtable->isValidCF(inner->env);
}
static const HParserVtable indirect_vt = {
.parse = parse_indirect,
.isValidRegular = h_false,
.isValidCF = indirect_isValidCF,
};
void h_bind_indirect(HParser* indirect, const HParser* inner) {