]> gitweb.factorcode.org Git - factor.git/commitdiff
formatting: revert change to %d, %o, %b, %x for now.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 10 Jun 2017 20:31:26 +0000 (13:31 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 10 Jun 2017 20:33:01 +0000 (13:33 -0700)
We should have a format character in the future to format using our Factor
binary, octal, and hex parser.  Maybe using the "alternate form" format
character like Python does? And if we do that, maybe print the 0b, 0o, 0x
prefixes? TBD.

basis/formatting/formatting-docs.factor
basis/formatting/formatting-tests.factor
basis/formatting/formatting.factor

index 9d4d267e88b960f4193fe92cf50081bc64157699..ee8b2141388ca8543895d341d4e547784939afd3 100755 (executable)
@@ -1,5 +1,5 @@
-
-USING: help.syntax help.markup kernel prettyprint sequences strings ;
+USING: assocs help.markup help.syntax kernel math prettyprint
+sequences strings ;
 
 IN: formatting
 
@@ -13,24 +13,22 @@ HELP: printf
     "padding, and decimals."
     $nl
     { $table
-        { { $snippet "%%" }          "Single %"                   "" }
-        { { $snippet "%P.Ds" }       "String format"              "string" }
-        { { $snippet "%P.DS" }       "String format uppercase"    "string" }
-        { { $snippet "%P.Du" }       "Unparsed format"            "object" }
-        { { $snippet "%c" }          "Character format"           "char" }
-        { { $snippet "%C" }          "Character format uppercase" "char" }
-        { { $snippet "%LPd" }        "Base 10 General format"              "real" }
-        { { $snippet "%LPx" }        "Base 16 General format"              "real" }
-        { { $snippet "%LPX" }        "Base 16 General format uppercase"    "real" }
-        { { $snippet "%LPo" }        "Base  8 General format"              "real" }
-        { { $snippet "%LPO" }        "Base  8 General format uppercase"    "real" }
-        { { $snippet "%LPb" }        "Base  2 General format"              "real" }
-        { { $snippet "%LPB" }        "Base  2 General format uppercase"    "real" }
-        { { $snippet "%LP.De" }      "Base 10 Scientific format"           "real" }
-        { { $snippet "%LP.DE" }      "Base 10 Scientific format uppercase" "real" }
-        { { $snippet "%LP.Df" }      "Base 10 Fixed format"                "real" }
-        { { $snippet "%[%?, %]" }    "Sequence format"            "sequence" }
-        { { $snippet "%[%?: %? %]" } "Assocs format"              "assocs" }
+        { { $snippet "%%" }          "Single %" "" }
+        { { $snippet "%P.Ds" }       "String" { $link string } }
+        { { $snippet "%P.DS" }       "String uppercase" { $link string } }
+        { { $snippet "%P.Du" }       "Unparsed" { $link object } }
+        { { $snippet "%c" }          "Character" "char" }
+        { { $snippet "%C" }          "Character uppercase" "char" }
+        { { $snippet "%LPd" }        "Integer decimal (base 10)" { $link real } }
+        { { $snippet "%LPx" }        "Integer hexadecimal (base 16)" { $link real } }
+        { { $snippet "%LPX" }        "Integer hexadecimal uppercase (base 16)" { $link real } }
+        { { $snippet "%LPo" }        "Integer octal (base 8)" { $link real } }
+        { { $snippet "%LPb" }        "Integer binary (base 2)" { $link real } }
+        { { $snippet "%LP.De" }      "Scientific (base 10)" { $link real } }
+        { { $snippet "%LP.DE" }      "Scientific uppercase (base 10)" { $link real } }
+        { { $snippet "%LP.Df" }      "Fixed (base 10)" { $link real } }
+        { { $snippet "%[%?, %]" }    "Sequence" { $link sequence } }
+        { { $snippet "%[%?: %? %]" } "Assocs" { $link assoc } }
     }
     $nl
     "Leading (" { $snippet "L" } ") is used to optionally prefix a plus sign (" { $snippet "\"+\"" } ") or space (" { $snippet "\" \"" } ") "
index 957eb20df731892196a308db768fe0ee70e14c5d..f018c8bb360de5d062d52b1ba6e43f384455926e 100755 (executable)
@@ -116,19 +116,6 @@ IN: formatting.tests
 { "1.0e+418" } [ 997654321098765432 10 400 ^ * "%.1e" sprintf ] unit-test
 { "1.00e+418" } [ 999654321098765432 10 400 ^ * "%.2e" sprintf ] unit-test
 
-{ "1.5625" } [ 1.5625 "%d" sprintf ] unit-test
-{ "1.9p0" } [ 1.5625 "%x" sprintf ] unit-test
-{ "1.9P0" } [ 1.5625 "%X" sprintf ] unit-test
-{ "1.44p0" } [ 1.5625 "%o" sprintf ] unit-test
-{ "1.44P0" } [ 1.5625 "%O" sprintf ] unit-test
-{ "1.1001p0" } [ 1.5625 "%b" sprintf ] unit-test
-{ "1.1001P0" } [ 1.5625 "%B" sprintf ] unit-test
-{ "14+17/20" } [ 14+17/20 "%d" sprintf ] unit-test
-{ "e+11/14" } [ 14+17/20 "%x" sprintf ] unit-test
-{ "E+11/14" } [ 14+17/20 "%X" sprintf ] unit-test
-{ "16+21/24" } [ 14+17/20 "%o" sprintf ] unit-test
-{ "1110+10001/10100" } [ 14+17/20 "%b" sprintf ] unit-test
-
 { "ff" } [ 0xff "%x" sprintf ] unit-test
 { "FF" } [ 0xff "%X" sprintf ] unit-test
 { "0f" } [ 0xf "%02x" sprintf ] unit-test
index 7cad3b94480fc65460e798cde6a2b95b07f63281..54c131c19191d2c9130e0f905e7529cf0402674d 100644 (file)
@@ -121,22 +121,20 @@ fmt-C     = "C"                  => [[ [ 1string >upper ] ]]
 fmt-s     = "s"                  => [[ [ present ] ]]
 fmt-S     = "S"                  => [[ [ present >upper ] ]]
 fmt-u     = "u"                  => [[ [ unparse ] ]]
-fmt-d     = "d"                  => [[ [ number>string ] ]]
-fmt-o     = "o"                  => [[ [ >oct ] ]]
-fmt-O     = "O"                  => [[ [ >oct >upper ] ]]
-fmt-b     = "b"                  => [[ [ >bin ] ]]
-fmt-B     = "B"                  => [[ [ >bin >upper ] ]]
+fmt-d     = "d"                  => [[ [ >integer number>string ] ]]
+fmt-o     = "o"                  => [[ [ >integer >oct ] ]]
+fmt-b     = "b"                  => [[ [ >integer >bin ] ]]
 fmt-e     = digits "e"           => [[ first '[ _ format-scientific ] ]]
 fmt-E     = digits "E"           => [[ first '[ _ format-scientific >upper ] ]]
 fmt-f     = digits "f"           => [[ first '[ _ format-decimal ] ]]
-fmt-x     = "x"                  => [[ [ >hex ] ]]
-fmt-X     = "X"                  => [[ [ >hex >upper ] ]]
+fmt-x     = "x"                  => [[ [ >integer >hex ] ]]
+fmt-X     = "X"                  => [[ [ >integer >hex >upper ] ]]
 unknown   = (.)*                 => [[ unknown-printf-directive ]]
 
 strings_  = fmt-c|fmt-C|fmt-s|fmt-S|fmt-u
 strings   = pad width strings_   => [[ <reversed> compose-all ]]
 
-numbers_  = fmt-d|fmt-o|fmt-O|fmt-b|fmt-B|fmt-e|fmt-E|fmt-f|fmt-x|fmt-X
+numbers_  = fmt-d|fmt-o|fmt-b|fmt-e|fmt-E|fmt-f|fmt-x|fmt-X
 numbers   = sign pad numbers_    => [[ unclip-last prefix compose-all [ fix-sign ] append ]]
 
 types     = strings|numbers