mescc: Parse mlibc early, show progress.
[mes.git] / module / language / c99 / compiler.mes
index 2a7cc69e8f0745c297924b00b0d2dc9e070d054f..00033fcd1d02dbadc4ef88ba8a69c8f4e057663a 100644 (file)
            (formals (.formals o))
            (text (formals->text formals))
            (locals (formals->locals formals)))
-      (format (current-error-port) "compiling ~s\n" name)
+      (format (current-error-port) "compiling: ~a\n" name)
       (let loop ((statements (.statements o))
                  (info (clone info #:locals locals #:function (.name o) #:text text)))
         (if (null? statements) (clone info
           (loop (cdr elements) ((ast->info info) (car elements)))))))
 
 (define (c99-input->info)
-  (stderr "COMPILE\n")
-  (let* ((ast (c99-input->ast))
-         (info (make <info>
+  (let* ((info (make <info>
                  #:functions i386:libc
                  #:types i386:type-alist))
-         (ast (append libc ast))
+         (foo (stderr "compiling: mlibc\n"))
+         (info (let loop ((info info) (libc libc))
+                 (if (null? libc) info
+                     (loop ((ast->info info) ((car libc))) (cdr libc)))))
+         (foo (stderr "parsing: input\n"))
+         (ast (c99-input->ast))
+         (foo (stderr "compiling: input\n"))
          (info ((ast->info info) ast))
-         (info ((ast->info info) _start)))
+         (info ((ast->info info) (_start))))
     info))
 
 (define (write-any x)