Changed parsers to use vtables instead of just a function pointer
This commit is contained in:
parent
c76c97cfcd
commit
6a2f10df0c
2 changed files with 139 additions and 36 deletions
|
|
@ -98,8 +98,12 @@ typedef const HParsedToken* (*HAction)(const HParseResult *p);
|
|||
*/
|
||||
typedef bool (*HPredicate)(HParseResult *p);
|
||||
|
||||
typedef struct HParserVtable_ {
|
||||
HParseResult* (*parse)(void *env, HParseState *state);
|
||||
} HParserVtable;
|
||||
|
||||
typedef struct HParser_ {
|
||||
HParseResult* (*fn)(void *env, HParseState *state);
|
||||
const HParserVtable *vtable;
|
||||
void *env;
|
||||
} HParser;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue