test: Add nyacc cpp match tests; two fail.

* tests/match.test ("match nyacc 0", "match nyacc 1"): New tests.
 ("match nyacc simple", "match nyacc tkl0"): New tests; FAIL with Mes.
 (report): Set failure expectation to 2 for Mes.
* HACKING: Add to bugs.
This commit is contained in:
Jan Nieuwenhuizen 2017-04-01 15:06:07 +02:00
parent 3b527affa3
commit 542a8c2106
2 changed files with 27 additions and 1 deletions

View File

@ -73,6 +73,7 @@ syntax-case]] with R7RS ellipsis, [[http://www.nongnu.org/nyacc/][Nyacc]] and [[
time to start doing something useful.
* Bugs
** test/match.test ("nyacc-simple"): hygiene problem in match
** The Scheme reader is very slow.
** Fluids are a hack for Nyacc.
** Prototype mes.c depends on a C compiler.

View File

@ -88,5 +88,30 @@ exit $?
(_ "no match: (1 2)"))
'(1 2)))
(result 'report)
(pass-if-equal "match nyacc 0"
'(rest)
(match '(first rest)
((first . rest)
rest)))
(pass-if-equal "match nyacc 1"
'(#\. rest)
(match '(first #\. rest)
(('first . rest)
rest)))
(let ((tkl0-simple '((ident . type) rest)))
(pass-if-equal "match nyacc simple"
(cons (cdar tkl0-simple) (cdr tkl0-simple))
(match tkl0-simple
((('ident . val) . rest)
(cons val rest)))))
(let ((tkl0 '((ident . "type") #\. #\] (arg . "0") #\[ (ident . "g_cells"))))
(pass-if-equal "match nyacc tkl0"
(cdr tkl0)
(match tkl0
((('ident . val) . rest)
rest))))
(result 'report (if mes? 2 0))