]> gitweb.factorcode.org Git - factor.git/commitdiff
parse-number cleanups
authorSlava Pestov <slava@factorcode.org>
Sun, 10 Oct 2004 19:35:59 +0000 (19:35 +0000)
committerSlava Pestov <slava@factorcode.org>
Sun, 10 Oct 2004 19:35:59 +0000 (19:35 +0000)
library/platform/jvm/kernel.factor
library/platform/jvm/parser.factor
library/platform/native/parse-syntax.factor
library/test/math/simpson.factor [deleted file]
library/test/test.factor

index da1bd803f43d32f7af9c2166b3406ec3fc55ccd9..637f6328d9573c18a5bc41ee75f9115bb6089773 100644 (file)
@@ -118,3 +118,5 @@ IN: kernel
     interpreter class-of*
     [ "java.lang.String" ]
     "java.lang.Class" "getResource" jinvoke ;
+
+: cpu "jvm" ;
index 013db286743e068965cd19b290be97a881796f2c..dbc12b9f062ef81ca15be8d76912c86fffabe626 100644 (file)
@@ -81,35 +81,25 @@ USE: strings
 : eval ( "X" -- X )
     parse call ;
 
-: base> ( str base -- num )
-    #! Parse a number in a specified base.
+: parse-number* ( str base -- num )
+    #! Convert a string to a number. Return f if conversion
+    #! fails.
     [ "java.lang.String" "int" ]
     "factor.math.NumberParser"
     "parseNumber"
     jinvoke-static ;
 
-: bin> ( str -- num )
-    #! Convert a binary string to a number.
-    2 base> ;
-
-: oct> ( str -- num )
-    #! Convert an octal string to a number.
-    8 base> ;
-
-: dec> ( str -- num )
-    #! Convert a decimal string to a number.
-    10 base> ;
-
-: hex> ( str -- num )
-    #! Convert a hexadecimal string to a number.
-    16 base> ;
+: parse-number 10 parse-number* ;
 
-! Something really sucks about these words here
-: parse-number ( str -- num ) dec> ;
+: not-a-number "Not a number" throw ;
 
-: str>number ( str -- num )
-    dup "base" get base> dup [
-        nip
-    ] [
-        drop "Not a number: " swap cat2 throw
-    ] ifte ;
+: base> ( str base -- num )
+    #! Convert a string to a number. Throw an error if
+    #! conversion fails.
+    parse-number* [ not-a-number ] unless* ;
+
+: bin> 2 base> ;
+: oct> 8 base> ;
+: dec> 10 base> ;
+: hex> 16 base> ;
+: str>number dec> ;
index 8d83b7873459166c6ef61c3d4c4debf5985e5361..16bb1ac94d257c4c936e5fad774c60469a3e075b 100644 (file)
@@ -197,7 +197,7 @@ IN: syntax
 
 : BASE: ( base -- )
     #! Read a number in a specific base.
-    scan swap str>integer parsed ;
+    scan swap base> parsed ;
 
 : HEX: 16 BASE: ; parsing
 : DEC: 10 BASE: ; parsing
diff --git a/library/test/math/simpson.factor b/library/test/math/simpson.factor
deleted file mode 100644 (file)
index 4c1b63e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-IN: scratchpad
-USE: math
-USE: test
-
-[ 2 ] [ 0 multiplier ] unit-test
-[ 4 ] [ 1 multiplier ] unit-test
-
-[ [ 1 4 1 ] ] [ 3 multipliers ] unit-test
-[ [ 1 4 2 4 1 ] ] [ 5 multipliers ] unit-test
-[ [ 1 4 2 4 2 4 1 ] ] [ 7 multipliers ] unit-test
-
-[ [ 0 5 10 ] ] [ 0 10 3 x-values ] unit-test
-[ [ 10 15 20 ] ] [ 10 20 3 x-values ] unit-test
-
-[ [ 0 1 4 9 16 ] ] [ 0 4 5 [ sq ] y-values ] unit-test
-
-[ 5/3 ] [ 10 20 3 h ] unit-test
-
-[ 1000/3 ] [ 0 10 3 [ sq ] simpson ] unit-test
index 3567dd723f12b65a113eec562064e6a243474f6e..0d6a6ad0b43057ab2073ba3ad671069912537e8c 100644 (file)
@@ -102,7 +102,6 @@ USE: unparser
         "math/float"
         "math/complex"
         "math/irrational"
-        "math/simpson"
         "math/namespaces"
         "httpd/url-encoding"
         "httpd/html"