1
0
mirror of https://github.com/janet-lang/janet synced 2024-06-26 15:13:16 +00:00

Improve peg error on unknown rule.

This helps a lot when debugging large, failing grammars.
This commit is contained in:
Calvin Rose 2019-10-09 17:59:48 -05:00
parent f780df0aa6
commit f9d57103f4

View File

@ -887,8 +887,10 @@ static uint32_t peg_compile1(Builder *b, Janet peg) {
JanetTable *grammar = old_grammar;
for (; i > 0 && janet_checktype(peg, JANET_KEYWORD); --i) {
peg = janet_table_get_ex(grammar, peg, &grammar);
if (!grammar)
peg_panic(b, "unknown rule");
if (!grammar || janet_checktype(peg, JANET_NIL)) {
builder_cleanup(b);
janet_panicf("grammar error in %p, unknown rule", b->form);
}
b->form = peg;
b->grammar = grammar;
}