;;;; ;;;; genturfahi - lo la .ckim. ke pe'a jajgau ratcu ke'e genturfa'i ;;;; `-> A Scheme packrat parser. ;;;; ;;;; Copyright (c) 2010 ".alyn.post." ;;;; ;;;; 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. ;;;; ;;; ;;; dot-plus expression: match the rest of the input file. ;;; ;;; dot-plus <- .+ ;;; (define (dot-plus) (let ((genturfahi-.+ (genturfahi* (nunjavni-.+)))) (dot-plus-test genturfahi-.+))) (define (dot-plus-peg) (let* ((samselpla (call-with-input-file "dot-plus.peg" genturfahi-peg)) (genturfahi-.+ (genturfahi* (eval samselpla)))) (dot-plus-test genturfahi-.+))) (define (dot-plus-test genturfahi-.+) (test '("a" "") (genturfahi-.+ "a")) (test '("b" "") (genturfahi-.+ "b")) (test '("c" "") (genturfahi-.+ "c")) (test '("ab" "") (genturfahi-.+ "ab")) (test '("bc" "") (genturfahi-.+ "bc")) (test '("ca" "") (genturfahi-.+ "ca")) (test '("abc" "") (genturfahi-.+ "abc")) (test '("bca" "") (genturfahi-.+ "bca")) (test '("cab" "") (genturfahi-.+ "cab")) (test '(#f "") (genturfahi-.+ "")) 0) (test-group "dot-plus" (dot-plus)) (test-group "dot-plus (PEG)" (dot-plus-peg))