]> gitweb.factorcode.org Git - factor.git/commitdiff
Add contrib/vars.factor
authorwayo.cavazos <wayo.cavazos@gmail.com>
Wed, 28 Jun 2006 10:52:10 +0000 (10:52 +0000)
committerwayo.cavazos <wayo.cavazos@gmail.com>
Wed, 28 Jun 2006 10:52:10 +0000 (10:52 +0000)
contrib/vars.factor [new file with mode: 0644]

diff --git a/contrib/vars.factor b/contrib/vars.factor
new file mode 100644 (file)
index 0000000..183e767
--- /dev/null
@@ -0,0 +1,27 @@
+! Copyright (C) 2005, 2006 Eduardo Cavazos
+
+! Thanks to Mackenzie Straight for the idea
+
+USING: kernel parser words namespaces sequences ;
+
+IN: vars
+
+: define-var-symbol ( str -- ) create-in define-symbol ;
+
+: define-var-getter ( str -- )
+dup ">" append create-in swap in get lookup [ get ] curry define-compound ;
+
+: define-var-setter ( str -- )
+">" over append create-in swap in get lookup [ set ] curry define-compound ;
+
+: define-var ( str -- )
+dup define-var-symbol dup define-var-getter define-var-setter ;
+
+: VAR: ( variable -- ) scan define-var ; parsing
+
+: define-vars ( seq -- ) [ define-var ] each ;
+
+: VARS: ( vars ... -- )
+string-mode on [ string-mode off define-vars ] f ; parsing
+
+PROVIDE: vars ;
\ No newline at end of file