Rename macros

This commit is contained in:
Justin Ethier 2020-04-29 22:36:19 -04:00
parent 0e160060a1
commit ebeb0e8651
2 changed files with 19 additions and 19 deletions

View file

@ -15,15 +15,15 @@
) )
;(include-c-header "<ck_pr.h>") ;(include-c-header "<ck_pr.h>")
(export (export
foreign-code c-code
foreign-value c-value
define-foreign-lambda c-defun
c->scm c->scm
scm->c scm->c
) )
(begin (begin
(define-syntax foreign-value (define-syntax c-value
(er-macro-transformer (er-macro-transformer
(lambda (expr rename compare) (lambda (expr rename compare)
(let* ((code-arg (cadr expr)) (let* ((code-arg (cadr expr))
@ -32,17 +32,17 @@
;(for-each ;(for-each
; (lambda (arg) ; (lambda (arg)
; (if (not (string? arg)) ; (if (not (string? arg))
; (error "foreign-value" "Invalid argument: string expected, received " arg))) ; (error "c-value" "Invalid argument: string expected, received " arg)))
; (cdr expr)) ; (cdr expr))
`((lambda () (Cyc-foreign-value ,code-arg ,type-arg))))))) `((lambda () (Cyc-foreign-value ,code-arg ,type-arg)))))))
(define-syntax foreign-code (define-syntax c-code
(er-macro-transformer (er-macro-transformer
(lambda (expr rename compare) (lambda (expr rename compare)
(for-each (for-each
(lambda (arg) (lambda (arg)
(if (not (string? arg)) (if (not (string? arg))
(error "foreign-code" "Invalid argument: string expected, received " arg))) (error "c-code" "Invalid argument: string expected, received " arg)))
(cdr expr)) (cdr expr))
`(Cyc-foreign-code ,@(cdr expr))))) `(Cyc-foreign-code ,@(cdr expr)))))
@ -71,7 +71,7 @@
(else (else
(error "scm->c unable to convert scheme object of type " ,type))))))) (error "scm->c unable to convert scheme object of type " ,type)))))))
;; Box C object, basically the meat of (foreign-value) ;; Box C object, basically the meat of (c-value)
;; ;;
;; c->scm :: string -> symbol -> string ;; c->scm :: string -> symbol -> string
;; ;;
@ -111,7 +111,7 @@
(error "c->scm unable to convert C object of type " ,type))))))) (error "c->scm unable to convert C object of type " ,type)))))))
;(pretty-print ( ;(pretty-print (
(define-syntax define-foreign-lambda (define-syntax c-defun
(er-macro-transformer (er-macro-transformer
(lambda (expr rename compare) (lambda (expr rename compare)
(let* ((scm-fnc (cadr expr)) (let* ((scm-fnc (cadr expr))
@ -150,10 +150,10 @@
"return_closcall1(data, k, " return-expr ");")) "return_closcall1(data, k, " return-expr ");"))
) )
`(define-c ,scm-fnc ,args ,body) `(define-c ,scm-fnc ,args ,body)
)) ))))
'(define-foreign-lambda scm-strlen int "strlen" string) ; '(c-defun scm-strlen int "strlen" string)
list ; list
list)) ; list))
) )
) )

View file

@ -11,13 +11,13 @@
(define *my-global* #f) (define *my-global* #f)
(test-group "foreign-value" (test-group "foreign value"
(test 3 (Cyc-foreign-value "1 + 2" 'integer)) (test 3 (c-value "1 + 2" 'integer))
) )
(test-group "foreign-code" (test-group "foreign code"
(test #f *my-global*) (test #f *my-global*)
(foreign-code (c-code
"printf(\"test %d %d \\n\", 1, 2);" "printf(\"test %d %d \\n\", 1, 2);"
"printf(\"test %d %d %d\\n\", 1, 2, 3);" "printf(\"test %d %d %d\\n\", 1, 2, 3);"
"__glo__85my_91global_85 = boolean_t;") "__glo__85my_91global_85 = boolean_t;")
@ -27,8 +27,8 @@
) )
;; Must be top-level ;; Must be top-level
(define-foreign-lambda scm-strlen int "strlen" string) (c-defun scm-strlen int "strlen" string)
(define-foreign-lambda scm-strlend double "strlen" string) (c-defun scm-strlend double "strlen" string)
(test-group "foreign lambda" (test-group "foreign lambda"
(test 15 (scm-strlen "testing 1, 2, 3")) (test 15 (scm-strlen "testing 1, 2, 3"))