: (make-csv "Testing,csv,\"parsing,a,csv\",test")
-> ("Testing" "csv" "\"parsing,a,csv\"" "test")
: (make-lst '("n" "g" "," "\"" "p" "a" "," "a" "," "c" "s" "v" "\"" "," "t") ",")
-> (("n" "g") (("\"" "p" "a" "," "a" "," "c" "s" "v" "\"")) ("t"))
: (make-quot '("n" "g" "," "\"" "p" "a" "," "a" "," "c" "s" "v" "\"" "," "t"))
-> ("n" "g" "," ("\"" "p" "a" "," "a" "," "c" "s" "v" "\"") "," "t")
[de make-csv (S)
(mapcar pack (make-lst (chop S) ",")) ]
[de make-lst (L D)
(split (make-quot L) D) ]
[de make-quot (L)
(when (bit? 1 (cnt = L '("\"" .))) (quit "Unmatched double \"quotes\""))
(make
(while (pop 'L) # (while (++ L) # as of 16.12
(let C @
(ifn (= "\"" C)
(link C)
(link (make (link C) (until (= "\"" (link (pop 'L) ] # (link (++ L) ] # as of 16.12