(Arne Babenhauserheide)
2015-03-19: quasiquote as ` mostly works, literal quasiquote plus unquote works. quasiquote as ` mostly works, literal quasiquote plus unquote works.
diff --git a/.bugs/bugs b/.bugs/bugs --- a/.bugs/bugs +++ b/.bugs/bugs @@ -6,6 +6,7 @@ add a testsuite for wisp parsers. wisp-mode: export wisp to html fails in org-mode: font-lock-fontify-keywords-region: Invalid regexp | owner:, open:False, id:1e46d8c05580c961c37a32d36c987a5dd1d34943, time:1389371020.39 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 +interpret ` , : correctly. | owner:, open:True, id:2feb5f048b55274c1bc7c8168c8cb358c0c8dd1d, time:1426777900.6 '() 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 @@ -20,7 +21,7 @@ wisp-guile.w does not yet remove the lea inline ' : should be '( | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:72d534a8b23b4cb168017f1bb7d8816f0ea170c4, time:1366497335.26 failing test tests/shebang.w | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:74a851f83af8996465a7b24d8453161beb0f0fd5, time:1379106761.57 non-nested multiline comments with #! !#. Requires restructuring. | owner:, open:False, id:7a57614fa920b2ddad002d044b144d0bb7c34f84, time:1389364108.01 -wisp-scheme: interpret , : as ,() similar to : , | owner:Arne Babenhauserheide <bab@draketo.de>, open:True, id:85e150dcb10c49d8f51db525e07d24e83bdba0f1, time:1416432201.21 +wisp-scheme: interpret , : as ,() similar to : , | owner:Arne Babenhauserheide <bab@draketo.de>, open:False, id:85e150dcb10c49d8f51db525e07d24e83bdba0f1, time:1416432201.21 wisp-guile: support nested multi-line comments with #| ... |#: multiline comments (srfi-30). Requires restructuring. | owner:Arne Babenhauserheide <bab@draketo.de>, open:True, id:8cf6202873d4454f57813dd17cf60432059f7c62, time:1389569421.6 wisp-scheme: Does not recognize the . #!curly-infix request for curly-infix or other reader syntax. | owner:Arne Babenhauserheide <bab@draketo.de>, open:True, id:91f27adb7d4e378e034b3408b6e4616f707f9587, time:1418162368.88 wisp-guile: the repl does not require 3 returns when you use a single char as function, or rather only does so every second time | owner:, open:True, id:9cedd0bdbf4a3b17add4bfe86ad5a23e500cfc6c, time:1379064870.78 diff --git a/tests/quotecolon.scm b/tests/quotecolon.scm --- a/tests/quotecolon.scm +++ b/tests/quotecolon.scm @@ -9,4 +9,4 @@ (a b) (c)) - +(define a (quasiquote ,(+ 2 2))) diff --git a/tests/quotecolon.w b/tests/quotecolon.w --- a/tests/quotecolon.w +++ b/tests/quotecolon.w @@ -8,3 +8,5 @@ define a ' : 1 2 3 define a b c + +define a : quasiquote , : + 2 2 diff --git a/wisp-scheme.w b/wisp-scheme.w --- a/wisp-scheme.w +++ b/wisp-scheme.w @@ -537,8 +537,16 @@ define : wisp-replace-paren-quotation-re list : list 'quote : map wisp-replace-paren-quotation-repr b : 'REPR-UNQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd a ... list 'unquote : map wisp-replace-paren-quotation-repr a + : a ... 'REPR-UNQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd b + append + map wisp-replace-paren-quotation-repr a + list : list 'unquote : map wisp-replace-paren-quotation-repr b : 'REPR-QUASIQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd a ... list 'quasiquote : map wisp-replace-paren-quotation-repr a + : a ... 'REPR-QUASIQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd b ; this is the quoted empty list + append + map wisp-replace-paren-quotation-repr a + list : list 'quasiquote : map wisp-replace-paren-quotation-repr b : 'REPR-UNQUOTESPLICING-e749c73d-c826-47e2-a798-c16c13cb89dd a ... list 'unquote-splicing : map wisp-replace-paren-quotation-repr a : 'REPR-SYNTAX-e749c73d-c826-47e2-a798-c16c13cb89dd a ...