diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2021-09-23 14:38:46 -0700 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2021-09-23 14:38:46 -0700 |
| commit | 89c5888dd66c09cb304d21e2ce6f96c9cc42461f (patch) | |
| tree | c66fc21d73e481f9890f62669b6e573cc267af1c /definitions.c | |
| parent | 86404d0ab3651ad5347aeada02566bd5b8eaa0af (diff) | |
Switched to using an optional type
Diffstat (limited to 'definitions.c')
| -rw-r--r-- | definitions.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/definitions.c b/definitions.c index 5309c8b..ed7d71a 100644 --- a/definitions.c +++ b/definitions.c @@ -34,10 +34,10 @@ def_t *with_def(def_t *defs, size_t namelen, const char *name, pat_t *pat) def_t *load_grammar(def_t *defs, file_t *f) { const char *str = after_spaces(f->start, true); - pat_t *pat = bp_pattern(f, str); - if (!pat) file_err(f, str, f->end, "Could not parse this file"); - if (pat->end < f->end) file_err(f, pat->end, f->end, "Could not parse this part of the file"); - for (pat_t *p = pat; p && p->type == BP_DEFINITION; p = p->args.def.pat) + maybe_pat_t maybe_pat = bp_pattern(f, str); + if (!maybe_pat.success) + file_err(f, maybe_pat.value.error.start, maybe_pat.value.error.end, maybe_pat.value.error.msg); + for (pat_t *p = maybe_pat.value.pat; p && p->type == BP_DEFINITION; p = p->args.def.pat) defs = with_def(defs, p->args.def.namelen, p->args.def.name, p->args.def.def); return defs; } |
