csv: 20% faster.
parent
1ea580d911
commit
49c2ec6180
|
@ -14,7 +14,7 @@ CHAR: , delimiter set-global
|
||||||
: delimiter> ( -- delimiter ) delimiter get ; inline
|
: delimiter> ( -- delimiter ) delimiter get ; inline
|
||||||
|
|
||||||
MEMO: (field-end) ( delimiter -- delimiter' )
|
MEMO: (field-end) ( delimiter -- delimiter' )
|
||||||
"\n" swap suffix ;
|
"\n" swap suffix ; inline
|
||||||
|
|
||||||
: skip-to-field-end ( -- endchar )
|
: skip-to-field-end ( -- endchar )
|
||||||
delimiter> (field-end) read-until nip ; inline
|
delimiter> (field-end) read-until nip ; inline
|
||||||
|
@ -22,16 +22,14 @@ MEMO: (field-end) ( delimiter -- delimiter' )
|
||||||
DEFER: quoted-field
|
DEFER: quoted-field
|
||||||
|
|
||||||
MEMO: (quoted-field) ( delimiter -- delimiter' )
|
MEMO: (quoted-field) ( delimiter -- delimiter' )
|
||||||
"\"\n" swap suffix ;
|
"\"\n" swap suffix ; inline
|
||||||
|
|
||||||
: not-quoted-field ( -- endchar )
|
: not-quoted-field ( -- endchar )
|
||||||
delimiter> (quoted-field) read-until
|
delimiter> (quoted-field) read-until
|
||||||
dup {
|
dup CHAR: " =
|
||||||
{ CHAR: " [ 2drop quoted-field ] }
|
[ 2drop quoted-field ]
|
||||||
{ delimiter> [ swap [ blank? ] trim % ] }
|
[ swap [ blank? ] trim % ]
|
||||||
{ CHAR: \n [ swap [ blank? ] trim % ] }
|
if ;
|
||||||
{ f [ swap [ blank? ] trim % ] }
|
|
||||||
} case ;
|
|
||||||
|
|
||||||
: maybe-escaped-quote ( -- endchar )
|
: maybe-escaped-quote ( -- endchar )
|
||||||
read1 dup {
|
read1 dup {
|
||||||
|
|
Loading…
Reference in New Issue