summaryrefslogtreecommitdiff
path: root/modules/language/python/compile.scm
diff options
context:
space:
mode:
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-03-22 10:40:03 +0100
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-03-22 10:40:03 +0100
commit1f86ca7767d661a42b3e66f667bb044f9c861346 (patch)
tree9940eb76056c652ad79834b7f567d9383e49c810 /modules/language/python/compile.scm
parentdc9f37567dae95b4eedcb967fa1b2add3fad86c2 (diff)
bisect module
Diffstat (limited to 'modules/language/python/compile.scm')
-rw-r--r--modules/language/python/compile.scm21
1 files changed, 19 insertions, 2 deletions
diff --git a/modules/language/python/compile.scm b/modules/language/python/compile.scm
index b00f304..f97597c 100644
--- a/modules/language/python/compile.scm
+++ b/modules/language/python/compile.scm
@@ -181,7 +181,16 @@
((#:global . _)
vs)
-
+
+ ((#:import (#:name ((ids ...) . as)) ...)
+ (let lp ((ids ids) (as as) (vs vs))
+ (if (pair? as)
+ (lp (cdr ids) (cdr as)
+ (let ((as (car as))
+ (ids (car ids)))
+ (union vs (list (exp '() (if as as (car ids)))))))
+ vs)))
+
((#:expr-stmt l (#:assign u))
(union (fold (lambda (x s)
(match x
@@ -209,8 +218,16 @@
vs)
((#:class . _)
vs)
- ((#:global . _)
+ ((#:global . _)
vs)
+ ((#:import (#:name ((ids ...) . as)) ...)
+ (let lp ((ids ids) (as as) (vs vs))
+ (if (pair? as)
+ (lp (cdr ids) (cdr as)
+ (let ((as (car as))
+ (ids (car ids)))
+ (union vs (list (exp '() (if as as (car ids)))))))
+ vs)))
((x . y)
(defs y (defs x vs)))
(_ vs)))