relative references in import
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>
Wed, 12 Sep 2018 19:38:35 +0000 (21:38 +0200)
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>
Wed, 12 Sep 2018 19:38:35 +0000 (21:38 +0200)
modules/language/python/compile.scm

index a45cc48..394e8d9 100644 (file)
                 l)))))
 
   
-  ((_ (#:name ((ids ...) . as) ...) ...)
+   ((_ (#:name ((dots ids ...) . as) ...) ...)
    `(,(G 'begin)
       ,@(map
-         (lambda (ids as)
+         (lambda (dots ids as)
            `(,(G 'begin)
-              ,@(map (lambda (ids as)
-                       (let ((path (map (g vs exp) ids)))
+              ,@(map (lambda (dots ids as)
+                       (let* ((u   (module-name (current-module)))
+                              (u   (reverse (list-cdr-ref (reverse (u-it u))
+                                                          (length dots))))
+
+                              (path (append (if (null? dots) '() u)
+                                            (map (g vs exp) ids))))
                          (if as
                              (exp
                               vs
                                       ,(append '(language python module)
                                                path)))
                                     ,(exp vs (car ids)))))))))))
-                     ids as)))
-         ids as))))
+                     dots ids as)))
+         dots ids as))))
               
  (#:for
   ((_ e in code . #f)