remove math.blas.syntax and merge parsing words into math.blas.vectors/matrices
[factor/jcg.git] / extra / vars / vars.factor
blobc12367ba5ea35a82952aea6e68f9e3173d5c25b7
1 ! Copyright (C) 2005, 2006 Eduardo Cavazos
3 ! Thanks to Mackenzie Straight for the idea
5 USING: accessors kernel parser lexer words words.symbol
6 namespaces sequences quotations ;
8 IN: vars
10 : define-var-getter ( word -- )
11     [ name>> ">" append create-in ] [ [ get ] curry ] bi
12     (( -- value )) define-declared ;
14 : define-var-setter ( word -- )
15     [ name>> ">" prepend create-in ] [ [ set ] curry ] bi
16     (( value -- )) define-declared ;
18 : define-var ( str -- )
19     create-in
20     [ define-symbol ]
21     [ define-var-getter ]
22     [ define-var-setter ] tri ;
24 : VAR: ! var
25     scan define-var ; parsing
27 : define-vars ( seq -- )
28     [ define-var ] each ;
30 : VARS: ! vars ...
31     ";" parse-tokens define-vars ; parsing