From 2af740f7632551a335a96c0db08292b0996f70db Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 3 Apr 2017 20:55:25 +0000 Subject: [PATCH] Added define-c inline helpers --- scheme/cyclone/util.sld | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index 644f0288..8f292f43 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -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)