(Arne Babenhauserheide)
2014-11-14: with the wisp-reader fix, wisp-scheme.w works completely again. with the wisp-reader fix, wisp-scheme.w works completely again.
diff --git a/.bugs/bugs b/.bugs/bugs --- a/.bugs/bugs +++ b/.bugs/bugs @@ -7,6 +7,7 @@ wisp-mode: export wisp to html fails in an empty line with : should start with double parens | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:2e188ddf44d36e4605030d3c58607ebfa97d189e, time:1390328674.43 wisp-in-wisp: remove the leading . for continuation lines after inferring the brackets. | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:2e42e5b64622f0cc383eb8acc3d510912e925bf0, time:1377476687.79 '() gives REPR-QUOTE-... | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:30c42de75c137f483245898e2a62af1e65cf19a6, time:1415060388.34 +multiple escaped initial underscores must be unescaped. | owner:, open:True, id:314e45488da4c7c8298c4c64ece03359918d057b, time:1415959749.14 wisp: handle general paren prefixes like quote, quasiquote, etc. | owner:, open:False, id:323ff94b5be635742619467e1cb44f4c0d96f63f, time:1379047798.47 throw an exception when reducing indentation to an unknown indentation level. | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:424186bd85f186b7279c5c59e2bd42f847284719, time:1376003568.91 wisp-in-wisp: only parses the first 272 lines, for some reason. | owner:, open:False, id:4cb6c556d7136609e2da9ab3fc045a39847f1ef3, time:1377014682.98 @@ -32,3 +33,4 @@ comments containing a closing parenthesi breaks on empty files | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:e40fa7a93eb2c497dca1af7eed22ad5ed5cfbe7f, time:1390325470.91 wisp-scheme: breaks on lines with only underscores. These should be treated as empty lines. | owner:, open:False, id:e464b5ce49deb14a80f67d50c6d70043ca9bde25, time:1415124488.16 quote as only char in a line gets parenthized instead of becoming a paren-prefix. | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:eb7468387e90bb5d13f5a5d81c6f4a704f2ca0fb, time:1390326369.6 +in the REPL output can be delayed by one line: Appears only when submitting the next command. | owner:, open:True, id:f1e42bbd4c17a2dec886c26d9c14e770bcff66d2, time:1415972414.48 diff --git a/wisp-scheme.w b/wisp-scheme.w --- a/wisp-scheme.w +++ b/wisp-scheme.w @@ -591,15 +591,15 @@ Match is awesome!" syntax-error tocheck "list with the period as only member" ; list with remaining dot. : a ... - if : and (member repr-dot a) : not : equal? (quote quote) (car a) + if : and (member repr-dot a) syntax-error tocheck "leftover period in list" map check a - ; ; 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" + ; 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 @@ -736,3 +736,4 @@ define : wisp-scheme-read-string-chunk s ; map primitive-eval : wisp-scheme-read-file "wisp-guile.w" ; actually runs wisp-guile.w with the arguments supplied to this script. ; uncomment the previous line, then run the next line in the shell. If 1 and 2 are equal, this parser works! ; guile wisp.scm wisp-scheme.w > wisp-scheme.scm; guile wisp-scheme.scm wisp-guile.w > 1; guile wisp.scm wisp-guile.w > 2; diff 1 2 +