1 USING: accessors arrays variants combinators io.styles
2 kernel math parser sequences fry ;
5 VARIANT: fontname serif monospace ;
7 : install ( object quot -- quot/? ) over [ curry ] [ 2drop [ ] ] if ;
9 : >>name* ( object fontname -- object ) name>> >>name ;
11 SYNTAX: FONT: \ ; parse-until {
12 [ [ number? ] find nip [ >>size ] install ]
13 [ [ italic = ] find nip [ >>italic? ] install ]
14 [ [ bold = ] find nip [ >>bold? ] install ]
15 [ [ fontname? ] find nip [ >>name* ] install ]
16 } cleave 4array concat '[ dup font>> @ drop ] append! ;