mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-24 04:25:06 +02:00
Added define-c inline helpers
This commit is contained in:
parent
85ab42e5d2
commit
2af740f763
1 changed files with 13 additions and 0 deletions
|
@ -68,6 +68,9 @@
|
||||||
;; Code generation
|
;; Code generation
|
||||||
mangle
|
mangle
|
||||||
mangle-global
|
mangle-global
|
||||||
|
;; Inlines (TBD, this may move)
|
||||||
|
define-c-inline?
|
||||||
|
define-c->inline-var
|
||||||
;; Scheme library functions
|
;; Scheme library functions
|
||||||
gensym
|
gensym
|
||||||
delete
|
delete
|
||||||
|
@ -198,6 +201,16 @@
|
||||||
(define (define-c? exp)
|
(define (define-c? exp)
|
||||||
(tagged-list? '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
|
;; Create a proper copy of an improper list
|
||||||
;; EG: (1 2 . 3) ==> (1 2 3)
|
;; EG: (1 2 . 3) ==> (1 2 3)
|
||||||
(define (pair->list p)
|
(define (pair->list p)
|
||||||
|
|
Loading…
Add table
Reference in a new issue