Added define-c inline helpers

This commit is contained in:
Justin Ethier 2017-04-03 20:55:25 +00:00
parent 85ab42e5d2
commit 2af740f763

View file

@ -68,6 +68,9 @@
;; Code generation
mangle
mangle-global
;; Inlines (TBD, this may move)
define-c-inline?
define-c->inline-var
;; Scheme library functions
gensym
delete
@ -198,6 +201,16 @@
(define (define-c? exp)
(tagged-list? 'define-c exp))
(define (define-c-inline? exp)
(and (define-c? exp) (= (length exp) 6)))
(define (define-c->inline-var exp)
(let ((var (define->var exp)))
(string->symbol
(string-append
(symbol->string var)
"__inline__"))))
;; Create a proper copy of an improper list
;; EG: (1 2 . 3) ==> (1 2 3)
(define (pair->list p)