;; ;; CSV parser combinators specialized for lists of characters. ;; ;; Copyright 2009-2013 Ivan Raikov and the Okinawa Institute of Science ;; and Technology. ;; ;; ;; This program is free software: you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation, either version 3 of ;; the License, or (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; ;; A full copy of the GPL license can be found at ;; . (module csv-char-list ( csv-parser make-format list->csv-record csv-record->list csv-record? ) (import scheme chicken srfi-1) (require-extension utils data-structures utf8 utf8-srfi-13 typeclass input-classes) (require-library abnf csv) (import (only abnf CharLex->CoreABNF Input->Token Token->CharLex ) (only csv make-parser make-format csv-record? list->csv-record csv-record->list CoreABNF->CSV ) ) (define char-list- (make- null? car cdr)) (define char-list- (Input->Token char-list-)) (define char-list- (Token->CharLex char-list-)) (define char-list- (CharLex->CoreABNF char-list-)) (define char-list- (CoreABNF->CSV char-list- )) (define char-list- (CoreABNF->CSV char-list- )) (define csv-parser (make-parser char-list-)) )