Closed wilbowma closed 4 years ago
It looks like you've cleverly defeated Redex's detection of languages that would cause the pattern matcher to loop. Here's a language that's just like LL
, except without the extensions and unions and it is a syntax error:
(define-language L
[w ::= number]
[p ::= e]
[e ::= (pop w) (push w) p])
Ah. I got there by following a design pattern for generating multi-language semantics. I'll have to be more careful.
Hopefully redex will be more helpful in that process next time! Thanks for finding the bug.
Robby
This is the smallest example I've come up with
The final call,
(redex-match? LL e (term (push 5)))
, seems to loop forever. Each line seems to be necessary, as far as I can tell.