On Mon, Jun 03, 2019 at 06:21:56AM +0200, Marco Maggi wrote: > Ciao, > > with CHICKEN 5.0.0 this form using MATCH from "matchable" (updated > right now): > > (match '(#:a #:b c d) > (((? keyword? k*) ... (? symbol? s*) ...) > (pretty-print k*) > (pretty-print s*)) > (_ > (pretty-print 'no))) > > fails with: > > Error: during expansion of (match-syntax-error283 ...) - no rule matches > form: (match-syntax-error "multiple ellipsis patterns not allowed at same > level") > > which looks like an error while reporting an error.
Hi Marco, It's complaining about your pattern, which is ambiguous. Well, you could say it's not strictly ambiguous, but the pattern matcher doesn't know that. It expands to a syntax-rules pattern, which cannot contain multiple ellipsis at the same level. The reason? How should (syntax-rules () ((foo bar "haha" more ... "haha" even-more ...) (list even-more ...))) match (blah 1 "haha" 2 3 4 "haha" 5 6 7 "haha" 8 9 10 "haha")? It could return either (5 6 7 "haha" 8 9 10 "haha"), (8 9 10 "haha") or (). Normally one would solve this by saying it could be greedy or non-greedy (like in regexes), but the spec doesn't specify, so strictly speaking this is an error. That's what gets reported. > By the way: should this be reported directly on the bugs server, > without previous confirmation by someone else? Of is it fine to report > it here first? And do I really need to privately contact a person to > get an account on the bugs server? If you still think this is a bug, it's a bug in matchable. I think there's no upstream repository for it (just the code on synthcode.com) So you can report it on bugs.call-cc.org, assign it to "ashinn" (that's matchable's author). Cheers, Peter
signature.asc
Description: PGP signature
_______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users