]> gitweb.factorcode.org Git - factor.git/blob - basis/nmake/nmake.factor
Fixing basis -> extra dependencies
[factor.git] / basis / nmake / nmake.factor
1 ! Copyright (C) 2008 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: namespaces sequences math.parser kernel macros
4 generalizations locals ;
5 IN: nmake
6
7 SYMBOL: building-seq 
8 : get-building-seq ( n -- seq )
9     building-seq get nth ;
10
11 : n, ( obj n -- ) get-building-seq push ;
12 : n% ( seq n -- ) get-building-seq push-all ;
13 : n# ( num n -- ) >r number>string r> n% ;
14
15 : 0, ( obj -- ) 0 n, ;
16 : 0% ( seq -- ) 0 n% ;
17 : 0# ( num -- ) 0 n# ;
18 : 1, ( obj -- ) 1 n, ;
19 : 1% ( seq -- ) 1 n% ;
20 : 1# ( num -- ) 1 n# ;
21 : 2, ( obj -- ) 2 n, ;
22 : 2% ( seq -- ) 2 n% ;
23 : 2# ( num -- ) 2 n# ;
24 : 3, ( obj -- ) 3 n, ;
25 : 3% ( seq -- ) 3 n% ;
26 : 3# ( num -- ) 3 n# ;
27 : 4, ( obj -- ) 4 n, ;
28 : 4% ( seq -- ) 4 n% ;
29 : 4# ( num -- ) 4 n# ;
30
31 MACRO: finish-nmake ( exemplars -- )
32     length [ firstn ] curry ;
33
34 :: nmake ( quot exemplars -- )
35     [
36         exemplars
37         [ 0 swap new-resizable ] map
38         building-seq set
39
40         quot call
41
42         building-seq get
43         exemplars [ [ like ] 2map ] [ finish-nmake ] bi
44     ] with-scope ; inline