]> gitweb.factorcode.org Git - factor.git/commitdiff
csv: 20% faster.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 14 Jul 2012 22:33:24 +0000 (15:33 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 14 Jul 2012 22:33:24 +0000 (15:33 -0700)
basis/csv/csv.factor

index b7c08ceec5188f9bf9e982b69a463d73a7684a40..aa35264f12510718aa8e949fe8059bae2236a6bc 100644 (file)
@@ -14,7 +14,7 @@ CHAR: , delimiter set-global
 : delimiter> ( -- delimiter ) delimiter get ; inline
 
 MEMO: (field-end) ( delimiter -- delimiter' )
-    "\n" swap suffix ;
+    "\n" swap suffix ; inline
 
 : skip-to-field-end ( -- endchar )
     delimiter> (field-end) read-until nip ; inline
@@ -22,16 +22,14 @@ MEMO: (field-end) ( delimiter -- delimiter' )
 DEFER: quoted-field
 
 MEMO: (quoted-field) ( delimiter -- delimiter' )
-    "\"\n" swap suffix ;
+    "\"\n" swap suffix ; inline
 
 : not-quoted-field ( -- endchar )
     delimiter> (quoted-field) read-until
-    dup {
-        { CHAR: "    [ 2drop quoted-field ] }
-        { delimiter> [ swap [ blank? ] trim % ] }
-        { CHAR: \n   [ swap [ blank? ] trim % ] }
-        { f          [ swap [ blank? ] trim % ] }
-    } case ;
+    dup CHAR: " =
+    [ 2drop quoted-field ]
+    [ swap [ blank? ] trim % ]
+    if ;
 
 : maybe-escaped-quote ( -- endchar )
     read1 dup {