factor/extra/fonts/syntax/syntax.factor

17 lines
560 B
Factor
Raw Normal View History

2009-08-04 18:16:34 -04:00
USING: accessors arrays variants combinators io.styles
2009-07-31 12:41:50 -04:00
kernel math parser sequences fry ;
IN: fonts.syntax
2009-08-04 18:16:34 -04:00
VARIANT: fontname serif monospace ;
2009-07-31 12:41:50 -04:00
: install ( object quot -- quot/? ) over [ curry ] [ 2drop [ ] ] if ;
: >>name* ( object fontname -- object ) name>> >>name ;
SYNTAX: FONT: \ ; parse-until {
[ [ number? ] find nip [ >>size ] install ]
[ [ italic = ] find nip [ >>italic? ] install ]
[ [ bold = ] find nip [ >>bold? ] install ]
[ [ fontname? ] find nip [ >>name* ] install ]
} cleave 4array concat '[ dup font>> @ drop ] append! ;