From 0b4bb36ec0d631c8f22d9e83b49eb77f0ffa4924 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Sat, 8 Oct 2016 02:48:06 -0400 Subject: [PATCH] Handle any import set in lib:import->library-name --- scheme/cyclone/libraries.sld | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/scheme/cyclone/libraries.sld b/scheme/cyclone/libraries.sld index bf6527b7..d7753b07 100644 --- a/scheme/cyclone/libraries.sld +++ b/scheme/cyclone/libraries.sld @@ -68,6 +68,20 @@ (define (lib:name ast) (lib:list->import-set (cadr ast))) +;; Convert an import-set to its corresponding library name. +;; These are not always the same thing, but each import-set +;; does reference a specific library. +(define (lib:import->library-name import) + (cond + ((or (tagged-list? 'only import) + (tagged-list? 'except import) + (tagged-list? 'prefix import) + (tagged-list? 'rename import)) + (cadr import)) + (else + import))) + + ;; Convert name (as list of symbols) to a mangled string (define (lib:name->string name) (apply string-append (map mangle (lib:import->library-name name)))) @@ -205,14 +219,6 @@ (close-input-port fp) imports)) -(define (lib:import->library-name import) - (cond - ((or (tagged-list? 'only import) - (tagged-list? 'except import)) - (cadr import)) - (else - import))) - ;; Read export list for a given import (define (lib:import->export-list import) (let* ((lib-name (lib:import->library-name import))