From aa91728a082cde784e01078944dc39e6df0877fa Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 9 Jan 2021 23:43:59 -0800 Subject: Replaced (void*) with (match_t*) in struct def --- grammar.c | 2 +- types.h | 4 +++- vm.c | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/grammar.c b/grammar.c index aa75522..5284225 100644 --- a/grammar.c +++ b/grammar.c @@ -94,7 +94,7 @@ void push_backref(grammar_t *g, const char *name, match_t *capture) op->start = capture->start; op->end = capture->end; op->len = -1; // TODO: maybe calculate this? - op->args.backref = (void*)capture; + op->args.backref = capture; g->backrefs[i].op = op; } diff --git a/types.h b/types.h index 56c6e28..e497c44 100644 --- a/types.h +++ b/types.h @@ -41,6 +41,8 @@ enum VMOpcode { VM_NODENT, }; +struct match_s; // forward declared to resolve circular struct defs + /* * A struct reperesenting a BP virtual machine operation */ @@ -71,7 +73,7 @@ typedef struct vm_op_s { struct vm_op_s *capture_pat; char *name; } capture; - void *backref; + struct match_s *backref; struct vm_op_s *pat; } args; } vm_op_t; diff --git a/vm.c b/vm.c index b81fd2c..55c25fb 100644 --- a/vm.c +++ b/vm.c @@ -458,7 +458,7 @@ static match_t *_match(grammar_t *g, file_t *f, const char *str, vm_op_t *op, un return m; } case VM_BACKREF: { - return match_backref(str, op, (match_t*)op->args.backref, flags); + return match_backref(str, op, op->args.backref, flags); } case VM_NODENT: { if (*str != '\n') return NULL; -- cgit v1.2.3