diff --git a/scheme/cyclone/primitives.sld b/scheme/cyclone/primitives.sld index 37887fdc..76850bb9 100644 --- a/scheme/cyclone/primitives.sld +++ b/scheme/cyclone/primitives.sld @@ -305,17 +305,19 @@ (string-append prefix (number->string expected) - " args but received " + " arguments to " + (symbol->string sym) + " but received " (number->string actual) )))) (cond ((not expected) #t) - ((and (car expected) - (> num-args (car expected))) - (error (build-error-str "Expected " (car expected) num-args) sym)) ((and (not (null? (cdr expected))) (cadr expected) - (< num-args (cadr expected))) + (> num-args (cadr expected))) + (error (build-error-str "Expected " (car expected) num-args) sym)) + ((and (car expected) + (< num-args (car expected))) (error (build-error-str "Expected at least " (car expected) num-args) sym)) (else #t)))) diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index 6b00b3a2..53530a14 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -22,7 +22,7 @@ (scheme cyclone primitives) (scheme cyclone pretty-print) (scheme cyclone util) -; (srfi 69) + (srfi 69) ) (export *defined-macros* @@ -1297,8 +1297,8 @@ ;; ;; Helpers to syntax check primitive calls ;; -;(define *prim-args-table* -; (alist->hash-table *primitives-num-args*)) +(define *prim-args-table* + (alist->hash-table *primitives-num-args*)) ;; CPS conversion ;; @@ -1347,13 +1347,13 @@ cont-ast))))) ((prim-call? ast) - ;(prim:check-arg-count - ; (car ast) - ; (- (length ast) 1) - ; (hash-table-ref/default - ; *prim-args-table* - ; (car ast) - ; #f)) + (prim:check-arg-count + (car ast) + (- (length ast) 1) + (hash-table-ref/default + *prim-args-table* + (car ast) + #f)) (cps-list (cdr ast) ; args to primitive function (lambda (args) (list cont-ast