From af60c05236704b231c1974ae90214cfe1efad38e Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 10 Sep 2020 03:52:16 -0700 Subject: Fixes, getting closer to meta-parsing --- bpeg.bpeg | 2 +- bpeg.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/bpeg.bpeg b/bpeg.bpeg index 6bd62da..6ab12c9 100644 --- a/bpeg.bpeg +++ b/bpeg.bpeg @@ -1,7 +1,7 @@ # This is a file defining the BPEG grammar using BPEG syntax grammar; -grammar = __ @[main-pattern]extended-pat __ (*def % (__`;__)) ?(__ `;) __; +grammar = __ @[main-pattern]extended-pat __ (*def % (__`;__)) ?(`;__); def = @[name]ref __ `= __ @[definition]extended-pat; # This is used for command line arguments: diff --git a/bpeg.c b/bpeg.c index b9b4232..8a8c1f9 100644 --- a/bpeg.c +++ b/bpeg.c @@ -817,6 +817,7 @@ static void load_defs(void) load_def("Hex", "`0-9/`a-f/`A-F"); load_def("hex", "`0-9/`a-f"); load_def("number", "+`0-9 ?(`. *`0-9) / `. +`0-9"); + load_def("int", "+`0-9"); load_def("digit", "`0-9"); load_def("Abc", "`a-z/`A-Z"); load_def("ABC", "`A-Z"); @@ -1059,6 +1060,7 @@ static vm_op_t *load_grammar(const char *grammar) defs += 1; } else { defs = after_name(defs); + if (defs == NULL) break; name = strndup(name, (size_t)(defs-name)); } defs = after_spaces(defs); -- cgit v1.2.3