aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2020-09-10 03:52:16 -0700
committerBruce Hill <bruce@bruce-hill.com>2020-09-10 03:52:16 -0700
commitaf60c05236704b231c1974ae90214cfe1efad38e (patch)
tree026d993571431230fe8e5565ed26800cb67c8629
parent62302ec85ea88fa04a1ea451bc7b4fc1fed17932 (diff)
Fixes, getting closer to meta-parsing
-rw-r--r--bpeg.bpeg2
-rw-r--r--bpeg.c2
2 files changed, 3 insertions, 1 deletions
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);