]> gitweb.factorcode.org Git - factor.git/blob - extra/vars/vars.factor
Conflict resolution
[factor.git] / extra / vars / vars.factor
1 ! Copyright (C) 2005, 2006 Eduardo Cavazos
2
3 ! Thanks to Mackenzie Straight for the idea
4
5 USING: accessors kernel parser lexer words words.symbol
6 namespaces sequences quotations ;
7
8 IN: vars
9
10 : define-var-getter ( word -- )
11     [ name>> ">" append create-in ] [ [ get ] curry ] bi
12     (( -- value )) define-declared ;
13
14 : define-var-setter ( word -- )
15     [ name>> ">" prepend create-in ] [ [ set ] curry ] bi
16     (( value -- )) define-declared ;
17
18 : define-var ( str -- )
19     create-in
20     [ define-symbol ]
21     [ define-var-getter ]
22     [ define-var-setter ] tri ;
23
24 : VAR: ! var
25     scan define-var ; parsing
26
27 : define-vars ( seq -- )
28     [ define-var ] each ;
29
30 : VARS: ! vars ...
31     ";" parse-tokens define-vars ; parsing