(Arne Babenhauserheide)
2014-11-14: comment out some stuff which fails when parsing wisp-scheme with comment out some stuff which fails when parsing wisp-scheme with wisp-scheme.
diff --git a/wisp-scheme.w b/wisp-scheme.w --- a/wisp-scheme.w +++ b/wisp-scheme.w @@ -1,4 +1,5 @@ -#!/home/arne/wisp/wisp-multiline.sh +#!/bin/bash +exec guile -L . --language=wisp -s "$0" "$@" ; !# ;; Scheme-only implementation of a wisp-preprocessor which output a @@ -523,7 +524,7 @@ define : wisp-replace-empty-eof code . "replace ((#<eof>)) by ()" ; FIXME: Actually this is a hack which fixes a bug when the ; parser hits files with only hashbang and comments. - if : and (pair? (car code)) (eof-object? (car (car code))) (null? (cdr code)) (null? (cdr (car code))) + if : and (not (null? code)) (pair? (car code)) (eof-object? (car (car code))) (null? (cdr code)) (null? (cdr (car code))) list . code @@ -578,25 +579,27 @@ Match is awesome!" map wisp-make-improper a a . a - define : syntax-error li - throw 'wisp-syntax-error (format #f "incorrect dot-syntax #{.}# in code: not a proper pair: ~A" li) - let check + define : syntax-error li msg + throw 'wisp-syntax-error (format #f "incorrect dot-syntax #{.}# in code: ~A: ~A" msg li) + if #t + . improper + let check : tocheck improper match tocheck ; lists with only one member : 'REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd - syntax-error tocheck + syntax-error tocheck "list with the period as only member" ; list with remaining dot. : a ... - if : member repr-dot a - syntax-error tocheck + if : and (member repr-dot a) : not : equal? (quote quote) (car a) + syntax-error tocheck "leftover period in list" map check a - ; simple pair - : 'REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd . c - syntax-error tocheck - ; simple pair, other way round - : a . 'REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd - syntax-error tocheck + ; ; simple pair - this and the next do not work when parsed from wisp-scheme itself. Why? + ; : 'REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd . c + ; syntax-error tocheck "dot as first element in already improper pair" + ; ; simple pair, other way round + ; : a . 'REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd + ; syntax-error tocheck "dot as last element in already improper pair" ; more complex pairs : ? pair? a let @@ -604,11 +607,11 @@ Match is awesome!" tail : last-pair a cond : equal? repr-dot : car tail - syntax-error tocheck + syntax-error tocheck "equal? repr-dot : car tail" : equal? repr-dot : cdr tail - syntax-error tocheck + syntax-error tocheck "equal? repr-dot : cdr tail" : member repr-dot head - syntax-error tocheck + syntax-error tocheck "member repr-dot head" else . a a