Added tests, ignoring empty rules

This commit is contained in:
Devine Lu Linvega 2024-04-27 12:30:40 -07:00
parent b0f9ba84e3
commit d520ab8489
2 changed files with 10 additions and 4 deletions

View File

@ -88,12 +88,15 @@ reverse (modal) = ladom (reverse 1) test
?(?-) (Incomplete definitions) ?(?-) (Incomplete definitions)
<> <>
<> () ()
<> (incomplete-basic) <> (incomplete-basic)
<> (incomplete-reg ?x) <> (incomplete-reg ?x)
<> (waste-rule) * <> (waste-rule) *
(incomplete-basic) = () (incomplete 1) test (incomplete-basic) = () (incomplete 1) test
(incomplete-reg abcdef) = () (incomplete 2) test (incomplete-reg abcdef) = () (incomplete 2) test
(?(?x) incomplete-lambda) = () (incomplete 3) test
?(?-) (Inline rules) ?(?-) (Inline rules)

View File

@ -228,11 +228,14 @@ rewrite(void)
Rule *r = NULL; Rule *r = NULL;
/* phase: define */ /* phase: define */
if(c == '<' && s[1] == '>') { if(c == '<' && s[1] == '>') {
r = rules_++; r = rules_;
s = compile_rule(r, rules_ - rules - 1, s + 2); s = compile_rule(r, rules_ - rules - 1, s + 2);
if(!quiet && r->a) if(*r->a) {
printf("<> "), echo_rule(r, r->a), echo_rule(r, r->b), putc('\n', stdout); if(!quiet && r->a)
while(*s == ' ') s++; printf("<> "), echo_rule(r, r->a), echo_rule(r, r->b), putc('\n', stdout);
while(*s == ' ') s++;
rules_++;
}
return write_tail(s); return write_tail(s);
} }
/* phase: undefine */ /* phase: undefine */