;; ;; member2-parser.scm ;; ;; Member file parsing. ;; ;; ISC License ;; ;; Copyright 2023 Brmlab, z.s. ;; Dominik Pantůček ;; ;; Permission to use, copy, modify, and/or distribute this software ;; for any purpose with or without fee is hereby granted, provided ;; that the above copyright notice and this permission notice appear ;; in all copies. ;; ;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL ;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED ;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE ;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR ;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS ;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, ;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN ;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ;; (declare (unit member2-parser)) (module member2-parser ( parse-member-file member-parser-tests! ) (import scheme (chicken io) member2-record) ;; Loads member file source. Performs passes 0 and 1 on each line ;; returning parsed source. Parsed source is a list of lists ;; containing '(key value line-number) information. Leading and ;; trailing whitespace is trimmed for both keys and values. (define (parse-member-file mr) (let* ((mrif (member-record-input-file mr)) (source (read-lines mrif))) (member-record-set mr #:source source))) (define (member-parser-tests!) #f) ) (import member2-parser) (member-parser-tests!)