 fmt-f     = digits "f"           => [[ first '[ _ format-decimal ] ]]
 fmt-x     = "x"                  => [[ [ >integer >hex ] ]]
 fmt-X     = "X"                  => [[ [ >integer >hex >upper ] ]]
-unknown   = (.)*                 => [[ unknown-printf-directive ]]
+unknown   = (.)*                 => [[ "" like unknown-format-directive ]]
 
 strings_  = fmt-c|fmt-C|fmt-s|fmt-S|fmt-u
 strings   = pad width strings_   => [[ <reversed> compose-all ]]

fmt-y     = "y"                  => [[ [ year>> 100 mod pad-00 ] ]]
fmt-Y     = "Y"                  => [[ [ year>> number>string ] ]]
fmt-Z     = "Z"                  => [[ [ "Not yet implemented" throw ] ]]
unknown   = (.)*                 => [[ "Unknown directive" throw ]]

formats_  = fmt-%|fmt-a|fmt-A|fmt-b|fmt-B|fmt-c|fmt-d|fmt-H|fmt-I|
            fmt-j|fmt-m|fmt-M|fmt-p|fmt-S|fmt-U|fmt-w|fmt-W|fmt-x|

math.functions.integer-logs splitting multiline ;
FROM: math.parser.private => format-float ;
IN: formatting

ERROR: unknown-format-directive value ;

<PRIVATE

