1 USING: fry functors generalizations kernel macros peg peg-lexer
5 FUNCTOR: fmaps ( W P -- )
8 w-n DEFINES ${W}-n-${P}
10 w-3 DEFINES 3${W}-${P}
11 w-4 DEFINES 4${W}-${P}
13 MACRO: w-n ( int -- quot ) dup '[ [ _ narray <p> ] dip [ _ firstn ] prepend W ] ;
14 : w-2 ( a b quot -- mapped ) 2 w-n ; inline
15 : w-3 ( a b c quot -- mapped ) 3 w-n ; inline
16 : w-4 ( a b c d quot -- mapped ) 4 w-n ; inline
20 tokenizer = <foreign factor>
22 middle = "FOR" => [[ drop ignore ]]
23 endexpr = ";" => [[ drop ignore ]]
24 expr = token* middle token* endexpr => [[ first2 combos [ first2 fmaps ] each ignore ]]