aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2021-01-09 23:43:59 -0800
committerBruce Hill <bruce@bruce-hill.com>2021-01-09 23:43:59 -0800
commitaa91728a082cde784e01078944dc39e6df0877fa (patch)
tree72b187de913d139f4ba225ec88e635f01cca9f17
parent03c790d5b61ecc07a34e6d113a5b434b72c835fe (diff)
Replaced (void*) with (match_t*) in struct def
-rw-r--r--grammar.c2
-rw-r--r--types.h4
-rw-r--r--vm.c2
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;