Issue #3 - Allow compiling a pure varargs lambda

This commit is contained in:
Justin Ethier 2016-08-13 01:42:58 -04:00
parent 4b7707e898
commit 17ce827d8e

View file

@ -982,8 +982,13 @@
; c-compile-formals : list[symbol] -> string ; c-compile-formals : list[symbol] -> string
(define (c-compile-formals formals type) (define (c-compile-formals formals type)
(if (not (pair? formals)) (cond
"" ((and (not (pair? formals))
(equal? type 'args:varargs))
(string-append "object " (mangle formals) "_raw, ..."))
((not (pair? formals))
"")
(else
(string-append (string-append
"object " "object "
(mangle (car formals)) (mangle (car formals))
@ -993,7 +998,7 @@
((not (equal? 'args:fixed type)) ((not (equal? 'args:fixed type))
(string-append ", object " (mangle (cdr formals)) "_raw, ...")) (string-append ", object " (mangle (cdr formals)) "_raw, ..."))
(else (else
""))))) ""))))))
; c-compile-lambda : lamda-exp (string -> void) -> (string -> string) ; c-compile-lambda : lamda-exp (string -> void) -> (string -> string)
(define (c-compile-lambda exp trace) (define (c-compile-lambda exp trace)