;; ;; ABNF parser combinators specialized for character lists. ;; ;; Copyright 2009-2011 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 abnf-charlist ( (concatenation lex:seq) (alternatives lex:bar) variable-repetition repetition repetition1 repetition-n optional-sequence range set set-from-string char lit alpha binary decimal hexadecimal ascii-char cr lf crlf ctl dquote htab lwsp octet sp vchar wsp pass bind drop-consumed longest (:: lex:seq) :? :! :s :c :* :+ ) (import scheme chicken ) (require-extension typeclass input-classes abnf) (require-library lexgen) (import (prefix lexgen lex:)) (import (only lexgen Input->Token Token->CharLex )) (define char-list- (make- null? car cdr)) (define char-list- (Input->Token char-list-)) (define char-list- (Token->CharLex char-list-)) (define char-list- (Token.CharLex->CoreABNF char-list- char-list-)) (import-instance ( char-list-) ) )