test: Add nyacc cpp match tests; two fail.
[mes.git] / tests / match.test
index 52fbd9825ad9b3126726f022c7c2cc1edeba9d2a..d1b7c8728bd7f5fced9a5c529d45c7d836c9ed4c 100755 (executable)
@@ -1,6 +1,7 @@
 #! /bin/sh
 # -*-scheme-*-
-echo ' ()' | cat $(dirname $0)/../module/mes/base-0.mes $0 /dev/stdin | $(dirname $0)/../scripts/mes $MES_FLAGS "$@"
+MES=${MES-$(dirname $0)/../scripts/mes}
+echo ' ()' | cat $(dirname $0)/../module/mes/base-0.mes $0 /dev/stdin | $MES $MES_FLAGS "$@"
 #paredit:||
 exit $?
 !#
@@ -87,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))