mescc: Tinycc support: comma operator.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 16 Jul 2017 22:29:18 +0000 (00:29 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 26 Jul 2017 09:36:08 +0000 (11:36 +0200)
* module/language/c99/compiler.mes (expr->accu): Handle comma operator.
* scaffold/tests/74-multi-line-string.c (test): Test it.

module/language/c99/compiler.mes
scaffold/tests/74-multi-line-string.c

index e779d200b03494ce3875122f3629d7a9ae528495..e750e7b31faa1b33865841e85e6a025d9fd39517 100644 (file)
           locals))
       (pmatch o
         ((expr) info)
+
+        ((comma-expr) info)
+
+        ((comma-expr ,a . ,rest)
+         (let ((info ((expr->accu info) a)))
+           ((expr->accu info) `(comma-expr ,@rest))))
+
         ((p-expr (string ,string))
          (let* ((globals ((globals:add-string globals) string))
                 (info (clone info #:globals globals)))
index e3d1c875154d3cad557b454421ccaa9eaf500499..f90b214fa57f7bf3793f9c5513d65eb051a5a581 100644 (file)
@@ -31,7 +31,7 @@ char const* help =
 int
 test ()
 {
-  if (strcmp (help, "All your base are")) return 1;
+  if (printf ("belong to us"), strcmp (help, "All your base are")) return 1;
 
-  return 0;
+  return 2,1,0;
 }