summaryrefslogtreecommitdiff
path: root/modules/language/python/compile.scm
diff options
context:
space:
mode:
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-09-03 23:53:19 +0200
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-09-03 23:53:19 +0200
commit8223db0b1a660ad10830e9a5a2fe71858cf52481 (patch)
tree28b1659900a411318e567914a66c7695f1966dbc /modules/language/python/compile.scm
parentd75a196fe299e3661e23d6f216008ab49660edec (diff)
bytes64 copmiles and testprogram works
Diffstat (limited to 'modules/language/python/compile.scm')
-rw-r--r--modules/language/python/compile.scm23
1 files changed, 17 insertions, 6 deletions
diff --git a/modules/language/python/compile.scm b/modules/language/python/compile.scm
index d715c8d..3f02f38 100644
--- a/modules/language/python/compile.scm
+++ b/modules/language/python/compile.scm
@@ -1116,8 +1116,8 @@
,@(if else `((else ,(exp vs else))) '()))))
(#:suite
- ((_ #:stmt . l) (cons* (G 'begin) `(,(G 'values)) (map (g vs exp) l)))
- ((_ . l) (list (G 'begin) `(,(G 'values)) (map (g vs exp) l))))
+ ((_ #:stmt . l) (cons (G 'begin) (map (g vs exp) l)))
+ ((_ . l) (cons (G 'begin) (map (g vs exp) l))))
(#:classdef
((_ class parents code)
@@ -2583,8 +2583,14 @@
(syntax-case x (quote __dict__)
((_ v)
#'v)
- ((_ v (#:fastfkn-ref f _) . l)
- #'(ref-x (lambda x (if (pyclass? v) (apply f x) (apply f v x))) . l))
+ ((_ v (#:fastfkn-ref f tag) . l)
+ #'(let ((vv v))
+ (if (is-a? vv <p>)
+ (ref-x v (#:identifier tag) . l)
+ (ref-x (lambda x
+ (if (pyclass? v)
+ (apply f x)
+ (apply f v x))) . l))))
((_ v (#:fast-id f _) . l)
#'(ref-x (f v) . l))
((_ v (#:identifier '__dict__) . l)
@@ -2728,7 +2734,11 @@
(cons x l)
l))
#:final l)))))
-
+
+(define (pkkk x)
+ (pk (syntax->datum x))
+ x)
+
(define-syntax qset!
(lambda (x)
(syntax-case x ()
@@ -2740,7 +2750,8 @@
((_ '() v)
#'(if (not (null? v))
- (raise (ValueError "too many values to unpack"))))
+ (raise (ValueError "too many values to unpack"))
+ (values)))
((_ x v)
#'(set! x v)))))