summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-07-03 07:08:26 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-07-03 07:08:26 -0700
commit1112aa72c98350e064f5bc11fd85a704c9270bc1 (patch)
tree0980d7a40e48430ea1e2af5640fe7ec02a7881b5 /share
parent9aaeb2fc604feee26a72a672fd846b4e70c6c1aa (diff)
downloadtxr-1112aa72c98350e064f5bc11fd85a704c9270bc1.tar.gz
txr-1112aa72c98350e064f5bc11fd85a704c9270bc1.tar.bz2
txr-1112aa72c98350e064f5bc11fd85a704c9270bc1.zip
Allow op arguments like @1 to be places.
* share/txr/stdlib/place.tl: Introducing new defplace for (sys:var ...) which is treated as if it were a symbol, in anticipation of the op/do macro placing that syntax with a symbol.
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/place.tl6
1 files changed, 6 insertions, 0 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl
index 9bb39347..72e054fd 100644
--- a/share/txr/stdlib/place.tl
+++ b/share/txr/stdlib/place.tl
@@ -291,6 +291,12 @@
(tree-bind ,args (cdr ,place)
,delete-body)))))))))
+(defplace (sys:var arg) body
+ (getter setter
+ ^(macrolet ((,getter () ^(sys:var ,',arg))
+ (,setter (val) ^(sys:setq ,'(sys:var ,arg) ,val)))
+ ,body)))
+
(defplace (car cell) body
(getter setter
(with-gensyms (cell-sym)